壹、生成表格
Private Sub CreateTable(mRows As Integer, mColumns) Dim mRange As Range
Set mRange = ActiveDocument.Range
mRange.SetRange Start:=ActiveDocument.Range.End, End:=ActiveDocument.Range.End
Set SelfGenTable = ActiveDocument.Tables.Add(Range:=mRange, NumRows:=mRows, NumColumns:=mColumns) End Sub
上面過程的作用是在活動文檔的末尾插入壹個mRows行,mColumns列的表格。 二、在讀寫表格中的單元格 寫入單元格使用如下代碼:
TableObject.Cell(Row:=curRow, Column:=curColumn).Range.InsertAfter "文本" 上面代碼的做用時在curRow行,curColumn列處插入字符“文本”。
其中TableObject為表格對象,如果使用了生成表格中的例子,那麽可以用SelfGenTable來替代TableObject。
三、調整單元格對齊方式 水平對齊設置
Selection.ParagraphFormat.Alignment=水平對齊常數(具體的常數可以查看幫助文件的說明) 如何選擇單元格? 選定特定單元格
TableObject.Cell(Row:=1,Column:=1).Select’選定單元格1,1 選定行
TableObject.Rows(i).Select’選定第i行 選定列
TableObject.Columns(i).Select’選定第i列 選定整個表格 TableObject.Select
首先執行表格元素選擇程序,然後再使用Selection.ParagraphFormat.Alignment設置對齊方式。
垂直對齊方式
Selection.Cells.VerticalAlignment=垂直對齊常數
也是首先選擇表格元素,可以使單個單元格,單個行、單個列或者整個表格。似乎也可以同時選擇多個單元格、多個行、多個列,有興趣的朋友可以自行尋找答案。 四、設置表格邊線類型
下面的代碼對整個表格的所有邊線設置成細實線: SelfGenTable.Select With Selection
.Borders(wdBorderBottom).LineStyle = wdLineStyleSingle .Borders(wdBorderLeft).LineStyle = wdLineStyleSingle .Borders(wdBorderRight).LineStyle = wdLineStyleSingle .Borders(wdBorderTop).LineStyle = wdLineStyleSingle
.Borders(wdBorderHorizontal).LineStyle = wdLineStyleSingle
Borders(wdBorderVertical).LineStyle = wdLineStyleSingle End With
同樣是對Selection進行設置,所以可以依照上面的方法對特定的單元格、行或者列的邊線樣式進行分別設置,這裏就不再列舉了。 五、調整表格尺寸
下面的代碼對壹個六列的表格設置寬度,寬度采用百分比寬度,從左至右的寬度百分比依次為:30,10,10,30,10,10: Dim WidthP(0 To 2) As Integer Dim j As Integer dim i as Integer WidthP(0) = 30 WidthP(1) = 10 WidthP(2) = 10 j = 0
For i = 0 To SelfGenTable.Columns.Count - 1 If j > 2 Then j = 0 End If
SelfGenTable.Columns(i + 1).PreferredWidthType = wdPreferredWidthPercent SelfGenTable.Columns(i + 1).PreferredWidth = WidthP(j) j = j + 1 Next
上面的代碼通過Columns的PreferredWidthType屬性設置表格列寬的形式,這裏選擇的是百分比列寬,可以根據自己的實際情況選擇其他列寬形式,然後再設置相應的數值。 表格的行高請讀者以此類推(實際上我還沒設置過行高,都用自動生成的就夠了) ===============================================
編寫操作表格的程序時需要註意,Word表格的行列起始值為1,而不是0。 ===============================================
下面是壹個拆分字符串的代碼,當插入表格的文本過長時,可以設定壹個長度,超過這個長度就進行回車,這樣保證在設定的單元格寬度內能夠寫下長文本。單元格的高度會自動調整以使文本能完整的顯示,這也就是我為什麽沒有通過代碼設置單元格高度的原因。 Private Function FoldText(mLen As Integer, mStr As String) As String '折疊文字函數,mLen為折疊前的文字長度,mStr為文字的內容 Dim i As Integer
Dim tmpStr(0 To 1) As String '臨時字符串 If Len(mStr) > mLen Then
Do While Len(mStr) > mLen tmpStr(0) = Left(mStr, mLen)
mStr = Right(mStr, Len(mStr) - mLen)
tmpStr(1) = tmpStr(1) + tmpStr(0) + vbCrLf Loop
tmpStr(1) = tmpStr(1) + mStr Else
tmpStr(1) = mStr