今回はリッチテキストに表を作成する方法についてまとめます。
表の作成
リッチテキストに表を作成するには NotesRichTextItem クラスの AppendTable メソッドを使用します。
Call notesRichTextItem.AppendTable(rows, columns[, labels][, leftMargin][, styleArray]) |
- rows
Integer 型。作成する表の行数を指定。
- columns
Integer 型。作成する表の列数を指定。
- labels
省略可能。文字列型の配列。タブ形式の表とする場合に指定し、タブのタイトルに設定されます。配列の要素数は行数と一致させること。
- leftMargin
省略可能。Long 型。表の左マージン。単位は twip(第 4 回 参照) 。
- styleArray
省略可能。NotesRichTextParagraphStyle の配列。列の幅や文字揃えなど列ごとのスタイルを指定。配列の要素数は列数と一致させること。
省略した場合、自動幅の表となる。
サンプルプログラム
以下のサンプルプログラムは、新規で作成したリッチテキストに3つの表を追加します。最初は、単純に行列数だけを指定した表。次は、タブ形式の表。最後が左マージンとスタイルを指定したパターンです。
Sub Initialize Dim ns As New NotesSession Dim ndb As NotesDatabase Dim nd As NotesDocument Dim nrti As NotesRichTextItem Set ndb = ns.CurrentDatabase Set nd = ndb.CreateDocument() nd.Form = "RichText" nd.Title = "リッチテキスト:#10)表の作成" Set nrti = nd.CreateRichTextItem("Body") '表1 Call nrti.AppendTable(5, 3) '表2 Dim asTitle(2) As String asTitle(0) = "タブA" asTitle(1) = "タブB" asTitle(2) = "タブC" Call nrti.AppendTable(3, 1, asTitle) '表3 Dim nrtps(2) As NotesRichTextParagraphStyle Dim i As Integer For i = 0 To Ubound(nrtps) Set nrtps(i) = ns.CreateRichTextParagraphStyle() nrtps(i).LeftMargin = i * RULER_ONE_CENTIMETER nrtps(i).FirstLineLeftMargin = i * RULER_ONE_CENTIMETER nrtps(i).RightMargin = (i * 2 + 2) * RULER_ONE_CENTIMETER Next Call nrti.AppendTable(3, 3, , 5 * RULER_ONE_CENTIMETER, nrtps) Call nd.Save(True, False) End Sub |
下図は実行で作成された文書を編集モードにした状態です。次のように3つの表が作成されています。
最初の表は、細かな指定をしていませんので、等間隔の列となっており、”マージンに合わせる”設定となっています。
タブの表には、3つ目の引数で指定したタブのタイトルが設定されています。表の幅は、最初の表と同様に”マージンに合わせる”設定になっています。
スタイルを設定した最後の表は、引数で指定した左マージンが反映されていることがわかります。また、列幅が RightMargin で指定した幅 2, 3, 4 cm となっていて、各セルは列ごとに左マージンの設定がされています。上図では3列目にカーソルがありますが、上部のルーラを見ると左マージンが 2 cm に設定されていることがわかります。
今回テストした限りでは、表のスタイルを設定すると表は必ず固定幅となるようです。よって、一部の列幅を固定して、残りの列をマージンに合わせる設定はできなさそうでした。
前回 | リッチテキストの基本操作 | 次回 |
0 件のコメント:
コメントを投稿