2011-05-24 106 views
1

我編寫了一個VBA腳本來創建&電子郵件的數據表。雖然它確實有效,但它也很難看。我想要做的一件事是調整這些列的大小,使它們不佔據整個頁面的寬度。如何使用VBA在Lotus中自動調整/調整表格的列大小?

「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 

回答

1

AppendTable方法中有一個參數,用於指定每列的樣式,包括寬度。

從AppendTable方法的文檔:

呼叫 notesRichTextItem。 AppendTable(行%, 列%[,標籤] [,LEFTMARGIN &] [,rtpsStyleArray])

參數:
行%整數。表中的行數。

列%整數。表格中的列數。

標籤 String類型的數組。可選的。標籤文本標籤爲 表格。數組元素 的數量必須等於行數。 省略此參數會附加 基本表。包含此參數 會附加一個選項卡式表格。

leftMargin &長。可選的。桌子的左邊緣以緹爲單位。 默認爲1440以下 常數是可用的:

  • RULER_ONE_CENTIMETER(567)
  • RULER_ONE_INCH(1440)

rtpsStyleArray陣列型NotesRichTextParagraphStyle的。可選的。 創建一個固定寬度 列和樣式屬性爲 的表格。省略此參數 將創建一個自動寬度表。 數組必須按順序包含表中每列的 的一個元素。 明確設置第一行左邊距 和左邊距,其中控制 開始的文字相對於 列的開始,右邊的 邊距,它控制列的寬度。

+0

這就是我一直在尋找的。我有一段時間沒有在這個代碼上工作,所以我有點生疏。 – PowerUser 2011-05-24 19:17:56

+0

@PowerUser,很高興聽到它! – 2011-05-24 19:25:15