TOP > blog > Adobe InDesign vbs スクリプトによる表組操作 no4 (罫線・色)
インデザイン
2020/07/18

Adobe InDesign vbs スクリプトによる表組操作 no4 (罫線・色)

管理者用
blog

xcel VBAスクリプトで、InDesign表組の自動化の方法を3回に分けて紹介してきました。
今回は、最後に残っていた、表の罫線などの操作、罫線の太さや、色を変えるなどを表組No4として紹介します。

現実に、表組使った自動化と言う話になると、表は事前に手動で作っておく事の方が多く、事前に作っておいた表に内容を入れて行く形のコントロールになると思います。
条件によっては、色を変える、線を太く強調するなどの使い方もあるかもしれません。

スクリプトをダウンロード出来るようにZipファイルでアップしてます。

サンプル Excelファイル ⇒ ダウンロードはこちらから

下記、本文内には、インデザインの立ち上げ部分のスクリプトは、割愛しております。 

 サンプルスクリプトの実行例を次の動画にしてますので参照してください。

  


1.インデザインの起動、および、表の作成まで

インデザインの起動後、テスト用の表を準備します。 


Rem Ind表操作.vbs  InDesignの表操作のスクリプト
MsgBox "インデザインを起動します。"
Set myInDesign = CreateObject("InDesign.Application") 'インデザインを起動する・・・・ *(注1)
Rem "A4サイズ新規ドキュメントを作成します!"
Set myDocument = myInDesign.Documents.Add '新規ドキュメント作成
Rem ===既存のインデザインファイルを使用する場合は===
'dir_mei = "M:\NAVI_VBA"
'INDD_name = dir_mei & "\テストサンプル.indd"
'Set myDocument = myInDesign.Open(INDD_name)
'=============================
Me_size_GH = 297
Me_size_GY = 210
With myDocument.DocumentPreferences
.PageHeight = CStr(Me_size_GH) & "mm"
.PageWidth = CStr(Me_size_GY) & "mm"
.FacingPages = False
End With

MsgBox "1." & vbCr & vbCr & "表の罫線操作用テーブルを作成します。"

Rem テキストフレームサイズを設定
Set myTextFrame = myDocument.TextFrames.Add

Rem テキストフレームサイズを変更
YS = 25
XS = 25
YE = 225
XE = 185
myTextFrame.GeometricBounds = Array(CStr(YS) + "mm", CStr(XS) + "mm", CStr(YE) + "mm", CStr(XE) + "mm")

'MsgBox "テーブル変換 TAB/CR データ "
tableDT = vbCr & vbCr & "三栄スタッフ一覧" & vbCr
tableDT = tableDT & "役職/担当" & vbTab & "名 前" & vbTab & "年齢" & vbCr
tableDT = tableDT & "事業部長" & vbTab & "宮本 武蔵" & vbTab & "63" & vbCr
tableDT = tableDT & "工場長" & vbTab & "坂本 竜馬" & vbTab & "33" & vbCr
tableDT = tableDT & "品質管理課長" & vbTab & "佐々木 小次郎" & vbTab & "45" & vbCr
tableDT = tableDT & " " & vbTab & "平均年齢" & vbTab & "47" & vbCr

myTextFrame.InsertionPoints.Item(-1).Contents = tableDT
'MsgBox "TAB テーブルに変換"
Set myStartCharacter = myTextFrame.Paragraphs.Item(4).Characters.Item(1)
Set myEndCharacter = myTextFrame.Paragraphs.Item(8).Characters.Item(-2)
Set myTableText = myTextFrame.Texts.ItemByRange(myStartCharacter, myEndCharacter).Item(1)
Set myTable2 = myTableText.ConvertToTable

myWidth = "180mm"
myHeight = "100mm"
myTable2.Width = myWidth
myTable2.Height = myHeight
myTable2.Columns.Item(3).Width = "30mm"
Table_RowsCount = myTable2.Rows.Count
Table_ColumsCount = myTable2.Columns.Count
Table_CellsCount = myTable2.Cells.Count

For k = 1 To Table_CellsCount Step 1
    myTable2.Cells.Item(k).Texts.Item(1).AppliedFont = "MS ゴシック"
    myTable2.Cells.Item(k).Texts.Item(1).FontStyle = "Regular"
    myTable2.Cells.Item(k).Texts.Item(1).PointSize = 20
Next

 

2.罫線の太さ

 罫線の太さを、設定します。
設定は、4辺をそれぞれ指定して実行します。
サンプルでは、表の全体の枠と2列目に対して行ってます。


MsgBox "表を囲う罫線を設定"
myTable2.LeftBorderStrokeWeight = "3pt"
MsgBox "表を囲う罫線を設定"
myTable2.RightBorderStrokeWeight = "3pt"
MsgBox "表を囲う罫線を設定"
myTable2.TopBorderStrokeWeight = "3pt"
MsgBox "表を囲う罫線を設定"
myTable2.BottomBorderStrokeWeight = "3pt"

MsgBox "行指定で罫線設定"
myTable2.Columns.Item(2).TopEdgeStrokeWeight = "4pt"

MsgBox "行指定で罫線設定"
myTable2.Columns.Item(2).RightEdgeStrokeWeight = "4pt"

MsgBox "行指定で罫線設定"
myTable2.Columns.Item(2).LeftEdgeStrokeWeight = "4pt"
MsgBox "行指定で罫線設定"
myTable2.Columns.Item(2).BottomEdgeStrokeWeight = "4pt"

 

3.罫線の線種を設定

 罫線の線種を設定します。

線種は、登録されている種類の名前で指定します。


MsgBox "罫線の線種を点線"
myTable2.Rows.Item(1).BottomEdgeStrokeWeight = "5pt"
myTable2.Rows.Item(1).BottomEdgeStrokeType = "点線"

MsgBox "罫線 線種を 太い - 太い"
myTable2.Rows.Item(2).BottomEdgeStrokeWeight = "5pt"
myTable2.Rows.Item(2).BottomEdgeStrokeType = "太い - 太い"

MsgBox "罫線の線種を句点"
myTable2.Rows.Item(3).BottomEdgeStrokeWeight = "5pt"
myTable2.Rows.Item(3).BottomEdgeStrokeType = "句点"

4.斜線

 セルに対し、斜線を引きます。
右から、左からと指定できます。


'斜線を入れる
MsgBox "斜線を入れる "
myTable2.Rows.Item(1).Cells.Item(2).TopLeftDiagonalLine = True

MsgBox "斜線を入れる "
myTable2.Rows.Item(1).Cells.Item(3).TopRightDiagonalLine = True

MsgBox "斜線を入れる "
myTable2.Rows.Item(1).Cells.Item(2).TopRightDiagonalLine = True

MsgBox "斜線消す "
myTable2.Rows.Item(1).Cells.Item(3).TopRightDiagonalLine = False

 

5.カラー

セル内のカラー、罫線の色の設定、さらに文字の設定などを紹介してます。 


MsgBox "カラーの設定 セルをカラー"
Set CO1 = myDocument.Colors.Add
CO1.ColorValue = Array(0, 50, 50, 0)
Set CO2 = myDocument.Colors.Add
CO2.ColorValue = Array(50, 50, 0, 0)
Set CO3 = myDocument.Colors.Add
CO3.ColorValue = Array(100, 0, 100, 0)

myTable2.Cells.Item(3).FillColor = CO1

MsgBox "セルをカラー"
myTable2.Rows.Item(3).FillColor = CO2

MsgBox "罫線をカラー"
myTable2.LeftBorderStrokeColor = CO3

MsgBox "罫線をカラー"
myTable2.BottomBorderStrokeColor = CO3

MsgBox "罫線をカラー"
myTable2.Rows.Item(3).BottomEdgeStrokeColor = CO1

MsgBox "テキストに色を付ける"
myTable2.Rows.Item(2).Cells.Item(2).Texts.Item(1).StrokeColor = CO3

MsgBox "テキストに色を付ける"
myTable2.Rows.Item(2).Cells.Item(2).Texts.Item(1).FillColor = CO1

 

 

関連記事