mccad 发表于 2004-3-29 21:39:00

讨论一下2005新功能的编程-表格生成及格式设置

'有关表格的VBA编程
'生成表格,填写文字并设置框线宽度 '以下例子生成一个3行4列的表格,并将第二行和第三行的4列各合并成一列
Sub mcAddTabel()
       Dim Table As AcadTable
       Dim InsertionPoint As Variant
       InsertionPoint = ThisDrawing.Utility.GetPoint(, vbCrLf & "请选择表格插入点:")
       Dim NumRows As Double, NumColumns As Double, _
               RowHeight As Double, Colwidth As Double
       NumRows = 3: NumColumns = 4 '行数和列数
       RowHeight = 10: Colwidth = 25 '行高及列宽
       Set Table = ThisDrawing.ModelSpace.AddTable _
                               (InsertionPoint, NumRows, NumColumns, RowHeight, Colwidth)
       '取消原先表格格式中的首行合并
       Table.UnmergeCells 0, 0, 0, 3   '按顺序为合并的起始行号、结束行号、起始列号、结束列号
       '将第二行的三列合并成一列
       Table.MergeCells 1, 1, 0, 3   '按顺序为合并的起始行号、结束行号、起始列号、结束列号
       Table.MergeCells 2, 2, 0, 3
       '在表格中写入文字
       Table.SetText 0, 0, "{\fSimSun|b0|i0|c134|p2;明}"
       Table.SetText 0, 1, "{\fSimSun|b0|i0|c134|p2;经}"
       Table.SetText 0, 2, "{\fSimSun|b0|i0|c134|p2;通}"
       Table.SetText 0, 3, "{\fSimSun|b0|i0|c134|p2;道}"
       Table.SetText 1, 0, "{\fSimSun|b0|i0|c134|p2;VBA编程技术}"
       Table.SetText 2, 0, "{\fSimSun|b0|i0|c134|p2;%<\AcVar Date \f ""yyyy年M月d日"">%}"
       '设置表外框线宽度,宽度的设置有点麻烦,因为表格被分成三个功能部分 _
         最顶一行为标题行(acTitleRow),第二行为行头(acHeaderRow) _
         剩下的就是数据行(acDataRow)了,而这三种都必须单独设置
       ThisDrawing.SetVariable "LWDISPLAY", 1
       Table.SetGridLineWeight acHorzTop + acVertLeft + acVertRight, _
                         acTitleRow, acLnWt050
       Table.SetGridLineWeight acHorzBottom + acVertLeft + acVertRight, _
                         acDataRow, acLnWt050
       Table.SetGridLineWeight acVertLeft + acVertRight, _
                         acHeaderRow, acLnWt050
End Sub生成的表格如下图:

efan2000 发表于 2004-3-29 22:48:00

有了表格的功能,制表确实方便了点,不过其数据计算的功能还是太差,可以考虑参照Excel的部分功能,将其移植到ACAD中,比如公式计算、数据关联、数据的导入和导出等。

goldenshin 发表于 2004-3-30 08:46:00

建议调整一下版块,


用VB写Arx程序(或C#)值得大力推广.


VB是最方便和最丰富的编程语言,Arx是功能最强的二次开发工具.两者结合在一起,值得推广应用.

my_computer 发表于 2004-4-1 21:58:00

goldenshin发表于2004-3-30 8:46:00static/image/common/back.gif建议调整一下版块,



用VB写Arx程序(或C#)值得大力推广.


VB是最方便和最丰富的编程语言,Arx是功能最强的二次开发工具.两者结合在一起,值得推广应用.

<BR>有这样的方法?能不能给点提示。

lhtfh 发表于 2004-4-9 19:17:00

支持!!!!

asd_10000 发表于 2013-1-9 15:22:11

Table.SetText 0, 0, "{\fSimSun|b0|i0|c134|p2;明}"
       Table.SetText 0, 1, "{\fSimSun|b0|i0|c134|p2;经}"
       Table.SetText 0, 2, "{\fSimSun|b0|i0|c134|p2;通}"
       Table.SetText 0, 3, "{\fSimSun|b0|i0|c134|p2;道}"
       Table.SetText 1, 0, "{\fSimSun|b0|i0|c134|p2;VBA编程技术}"
       Table.SetText 2, 0, "{\fSimSun|b0|i0|c134|p2;%<\AcVar Date \f ""yyyy年M月d日"">%}"
"{\fSimSun|b0|i0|c134|p2;%<\AcVar Date \f ""yyyy年M月d日"">%}" 是什么意思

crazylsp 发表于 2013-3-13 16:33:36

收下了改改做个自己的表格。
页: [1]
查看完整版本: 讨论一下2005新功能的编程-表格生成及格式设置