Как добавить Textbox внутри ячейки таблицы? - PullRequest
0 голосов
/ 06 февраля 2012
Sub t()

Dim File As String
File = "C:\Users\Tin\Desktop\a.docx"

Dim oWord As Word.Application
Set oWord = New Word.Application
Dim oDoc As Word.Document
Set oDoc = oWord.Documents.Open(File)
oWord.Visible = True

With oDoc

Dim Table1 As Word.Table
Set Table1 = .Tables.Add(Range:=.Range, NumRows:=2, NumColumns:=2)

Table1.Borders(wdBorderTop).LineStyle = wdLineStyleSingle
Table1.Borders(wdBorderRight).LineStyle = wdLineStyleSingle
Table1.Borders(wdBorderBottom).LineStyle = wdLineStyleSingle
Table1.Borders(wdBorderLeft).LineStyle = wdLineStyleSingle
Table1.Borders(wdBorderHorizontal).LineStyle = wdLineStyleSingle
Table1.Borders(wdBorderVertical).LineStyle = wdLineStyleSingle

Table1.Rows.Height = 50

Dim lLeft As Long
Dim lTop As Long
Dim Rng As Word.Range

Set Rng = .Tables(1).Cell(1, 1).Range

Dim Shp As Word.Shape
  lLeft = .Tables(1).Cell(1, 1).Range.Information(wdHorizontalPositionRelativeToPage) + 50
  lTop = .Tables(1).Cell(1, 1).Range.Information(wdVerticalPositionRelativeToPage) + 20
  Debug.Print (lLeft)
  Debug.Print (lTop)

Set Shp = .Shapes.AddTextbox(Orientation:=msoTextOrientationHorizontal, Left:=lLeft, _
    Top:=iTop, Width:=20, Height:=20, Anchor:=Rng)
End With

End Sub

Я автоматизирую Word в Excel. Я попытался настроить местоположение текстового поля, но не смог. Это всегда остается за столом. Я могу автоматизировать это в самом Word, но в Excel управление Word Textbox кажется мне «непонятным», когда дело касается позиционирования.

1 Ответ

0 голосов
/ 26 марта 2014

Даже если это старый вопрос, я все равно хотел его исследовать.Я попробовал ваш код (макрос Excel с добавленной ссылкой на библиотеку объектов Word) и не смог найти что-то не так с ним. Ваш код работает, как и ожидалось, квадратная форма внутри первой ячейки.

Я использую Office 2010 (итальянский язык).

...