Я работаю в Visual Basic 2008 express edition, использую Microsoft Word 11.0 Object Library для соединения с Word. Создаю документ, таблицу, начинаю назначать ширину столбцам. Все, вроде, нормально, но как только подходит момент обработать очередной столбец (сузить до 3 мм = 8,5 point) программа тут же выдает ошибку ("COMException was unhandled. Значение лежит вне допустимого диапазона."). Причем, как я уже проанализировал, "допустимый диапазон" начинается с 11 пунктов (3.88 мм), но почему? Почему? Если я тупо захожу в Word, кликая мышкой, и создав таблицу, могу задать ширину столбца или любой ячейки равной, даже 0,1 мм . Помогите пожалуйста. Может решение лежит под носом, а я его не вижу? Или какие-нибудь есть скрытые нюансы ? Заранее спасибо.
Вот фрагмент кода:
"
- Код: Выделить всё
Private Sub CreateTable(ByVal w As Microsoft.Office.Interop.Word.Document, ByVal r As Microsoft.Office.Interop.Word.Range)
Dim strok As Short = 21 ' Количество строк в таблице
Dim stolb As Short = 18 ' Количество столбцов в таблице
Dim m As Single = 2.834645669213 ' Количество поинтов в миллиметре
w.Tables.Add(w.Paragraphs.Item(w.Paragraphs.Count).Range, strok, stolb) ' Добавляем таблицу в документ
Dim iMax As Integer = w.Tables.Count ' Номер последней таблицы
w.Tables.Item(iMax).LeftPadding = 0
w.Tables.Item(iMax).RightPadding = 0
w.Tables.Item(iMax).TopPadding = 0
w.Tables.Item(iMax).BottomPadding = 0
w.Tables.Item(iMax).Columns(1).Cells.Width = 5 * m ' Начинаем задавать ширину столбцам
w.Tables.Item(iMax).Columns(2).Cells.Width = 7 * m
w.Tables.Item(iMax).Columns(3).Cells.Width = 7 * m
w.Tables.Item(iMax).Columns(4).Cells.Width = 10 * m
w.Tables.Item(iMax).Columns(5).Cells.Width = 3 * m ' <--- Вот эта строка, тут все обрывается :(
w.Tables.Item(iMax).Columns(6).Cells.Width = 23 * m
w.Tables.Item(iMax).Columns(7).Cells.Width = 15 * m
w.Tables.Item(iMax).Columns(8).Cells.Width = 10 * m
w.Tables.Item(iMax).Columns(9).Cells.Width = 25 * m
w.Tables.Item(iMax).Columns(10).Cells.Width = 5 * m
w.Tables.Item(iMax).Columns(11).Cells.Width = 20 * m
w.Tables.Item(iMax).Columns(12).Cells.Width = 20 * m
w.Tables.Item(iMax).Columns(13).Cells.Width = 5 * m
w.Tables.Item(iMax).Columns(14).Cells.Width = 5 * m
w.Tables.Item(iMax).Columns(15).Cells.Width = 5 * m
w.Tables.Item(iMax).Columns(16).Cells.Width = 10 * m
w.Tables.Item(iMax).Columns(17).Cells.Width = 5 * m
w.Tables.Item(iMax).Columns(18).Cells.Width = 20 * m
w.Range.InsertParagraphAfter()
End Sub