По поводу второй части вопроса (Присвоить значения ячейкам Microsoft Excel WorkSheet)
Попробуйте такой код:
Код: Выделить всё
Sub Fill_Excel_Table_in_Winword()
Dim ish As InlineShape, wb As Excel.Workbook, sh As Excel.Worksheet
Set ish = Selection.InlineShapes.AddOLEObject(ClassType:="Excel.Sheet.8", FileName:= "", LinkToFile:=False, DisplayAsIcon:=False)
Set wb = ish.OLEFormat.Object ' возвращает книгу excel
Set sh = wb.Worksheets(1)
For i = 1 To 5
For j = 1 To 6
sh.Cells(i, j).Value = "Cell " & i & " - " & j
Next
Next
Set sh = Nothing: Set wb = Nothing: Set ish = Nothing
End Sub
Возможно, где-то и закралась ошибка, но у меня этот код работает без проблем.
С первой частью вопроса посложнее, но, имея доступ к внедрённому листу excel (объект sh) и объекту InlineShape, можно путём изменения ширины столбцов и высоты строк на листе excel, а также управляя шириной и высотой объекта InlineShape (свойства ish.Height и ish.Width), достичь желаемого результата.