问题描述
|
我正在编写VBA脚本来创建并通过电子邮件发送数据表。尽管它确实起作用,但也很丑陋。我想做的一件事是调整这些列的大小,以使它们不占用页面的整个宽度。
\“ autosize column \”选项会很好,除非我在API中看不到任何地方。另外,我愿意手动设置每列的宽度。有人可以告诉我我需要添加什么代码吗?
Dim rtNav As NotesRichTextNavigator
Dim rtTbl As NotesRichTextTable
Dim TblHeader_FontStyle As NotesRichTextStyle
Dim TblBody_BackgroundStyle As NotesRichTextStyle
Dim TblHeader_BackgroundStyle As NotesColorObject
Dim TblBody_FontStyle As NotesColorObject
Sub AppendTable()
\'Define styles
Set TblHeader_BackgroundStyle = NtSession.CreateColorObject
TblHeader_BackgroundStyle.NotesColor = COLOR_DARK_BLUE
Set TblHeader_FontStyle = NtSession.CreateRichTextStyle
TblHeader_FontStyle.NotesColor = COLOR_WHITE
TblHeader_FontStyle.FontSize = 8
Set TblBody_FontStyle = NtSession.CreateColorObject
TblBody_FontStyle.NotesColor = COLOR_WHITE
Set TblBody_BackgroundStyle = NtSession.CreateRichTextStyle
TblBody_BackgroundStyle.NotesColor = COLOR_BLACK
TblBody_BackgroundStyle.FontSize = 10
\'-----------------------------------------------------
\'Make table structure
NtBod.AppendTable lRowCount:=1,lColumnCount:=5
Set rtNav = NtBod.CreateNavigator
Set rtTbl = rtNav.GetFirstElement(RTELEM_TYPE_TABLE)
rtTbl.Style = TABLESTYLE_TOP
Call NtBod.AppendStyle(TblHeader_FontStyle)
Call rtTbl.SetColor(TblHeader_BackgroundStyle)
rtNav.FindFirstElement (RTELEM_TYPE_TABLECELL)
\'The rest of the procedure to navigate the table and insert the data goes here
解决方法
AppendTable
方法中有一个参数,可让您指定每列的样式,包括宽度。
从AppendTable方法文档中:
呼叫
notesRichTextItem.AppendTable(rows%,
列%[,标签] [,leftMargin&]
[,rtpsStyleArray])
参数:
行%整数。表中的行数。
column%整数。表中的列数。
标签类型为String的数组。可选的。标签选项卡的文本
表。数组元素数
必须等于行数。
省略此参数将附加一个
基本表。包含此参数
追加选项卡式表。
leftMargin&Long。可选的。表格的左边距(以缇为单位)。
默认值为1440。
常量可用:
RULER_ONE_CENTIMETER(567)
RULER_ONE_INCH(1440)
rtpsStyleArray类型为NotesRichTextParagraphStyle的数组。可选的。
创建一个固定宽度的表
列和样式属性为
指定。省略此参数
创建一个自动宽度表。的
数组必须包含一个元素
表格中的每一列按顺序排列。
明确设置左第一行
边距和左边距,由哪个控制
相对于
列的开始,右边
页边距,用于控制列宽。