如何在表格单元格中添加文本框?

时间:2012-02-06 17:27:03

标签: ms-word automation cell word-vba

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

我在Excel中自动化Word。 我试图调整文本框位置但失败了。它总是在桌子外面。 我可以在Word中自动化它,但在Excel中控制Word Textbox在定位方面对我来说似乎“不可理解”。

1 个答案:

答案 0 :(得分:0)

即使这是一个老问题,我仍然想要调查它。我尝试了你的代码(Excel宏添加了对Word对象库的引用)并且无法找到它的错误。 您的代码按预期工作,第一个单元格内的方形形状。

我使用的是Office 2010(意大利语)。