インデザインスクリプト
2016/01/29
11.インデザインスクリプト 初級講座(7) タブの設定
管理者用インデザインスクリプト タブ のセットについて紹介します。
ボタンのクリックイベントに、ページの最後に記述している スクリプト全体を記入してください。コピーしても問題ありません。
ボタンのクリックで、スクリプトがスターとします。
指定した、インデザインドキメントを開き、 テキストフレームが作られて、操作対象となる文字が流し込まれています。
タブのセットの確認のため、いつものデータにタブコードをあちらこちら入れました。
VBでは、 タブコードを vbTab
CRコードを vbCr と記述しても問題ありません。
filde_jyusyo1 = "東京都" & vbTab & "品川区" & vbTab & "中延6-1-29"
filde_jyusyo1 = filde_jyusyo1 & vbCr & "電 話" & vbTab & "03" & vbTab & "3785" & vbTab & "4402"
filde_jyusyo1 = filde_jyusyo1 & vbCr & vbTab & "FAX" & vbTab & "03ー3785ー4401"
filde_jyusyo1 = filde_jyusyo1 & vbCr & vbTab & "E-mail:" & vbTab & "info@" & vbTab & "sanei-rint" & vbTab & ".co" & vbTab & ".jp"
filde_jyusyo1 = filde_jyusyo1 & vbCr & vbTab & "http:www.sanei-print.co.jp"
myTextFrame.Contents = filde_jyusyo1 'テキストフレームに住所データを書き込む
タブ位置のセット
MsgBox "タブの設定"
'タブの設定
Set myTabStop1 = myTextFrame.ParentStory.TabStops.Add
myTabStop1.Alignment = idTabStopAlignment.idLeftAlign
myTabStop1.Position = 20
Set myTabStop2 = myTextFrame.ParentStory.TabStops.Add
myTabStop2.Alignment = idTabStopAlignment.idLeftAlign
myTabStop2.Position = 60
Set myTabStop3 = myTextFrame.ParentStory.TabStops.Add
myTabStop3.Alignment = idTabStopAlignment.idLeftAlign
myTabStop3.Position = 90
タブウインドウを表示させておいて、テキストフレームを選択してタブ位置のセット状態を確認してください。
全て、左揃えでセットしました。
リーダーの設定
MsgBox "リーダーの設定 "
myTabStop3.Leader = ">"
リーダーを [ > ] にセットしてます。
特定行にタブセット
MsgBox "行指定でタブをセット"
Set myTabStop4 = myTextFrame.Paragraphs(4).TabStops.Add
myTabStop4.Position = 10
Set myTabStop5 = myTextFrame.Paragraphs(4).TabStops.Add
myTabStop5.Position = 45
例では、4行目に対しタブをセットしてます。
テキストフレームの4行目を選択して、タブのセットを確認してください。
タブのリセット
MsgBox "タブをリセット"
myTabStop5.Delete
テキストフレーム作成
filde_jyusyo1 = vbTab & "250×24575" & vbTab & "="
filde_jyusyo1 = filde_jyusyo1 & vbCr & vbTab & "20×487" & vbTab & "="
filde_jyusyo1 = filde_jyusyo1 & vbCr & vbTab & "458720×42" & vbTab & "="
myTextFrame2.Contents = filde_jyusyo1 'テキストフレームに住所データを書き込む
新しくテキストふれームを追加して、タブの確認を行います
スクリプトにコメントで記述したように、タブの種類は4種あります。
'タブの種類
'idTabStopAlignment.idCenterAlign = 1667591796
'idTabStopAlignment.idCharacterAlign = 1952604515
' idTabStopAlignment.idLeftAlign = 1818584692
'idTabStopAlignment.idRightAlign = 1919379572
タブウインドウを新規に作ったテキストフレームの上に移動しておいてください。
タブを左揃え
MsgBox "タブの設定 左"
Set myTabStop22 = myTextFrame2.ParentStory.TabStops.Add
myTabStop22.Position = 100
myTabStop22.Alignment = idTabStopAlignment.idLeftAlign
タブを右揃え
MsgBox "タブの設定 右"
myTabStop22.Alignment = idTabStopAlignment.idRightAlign
タブを特定キャラクター文字揃え
MsgBox "タブの設定 キャラクターセット x"
Set myTabStop21 = myTextFrame2.ParentStory.TabStops.Add
myTabStop21.Position = 30
myTabStop21.AlignmentCharacter = "×"
myTabStop21.Alignment = idTabStopAlignment.idCharacterAlign
スクリプト全体
Option Explicit
Private Sub CommandButton1_Click()
Dim myInDesign, myDocument, myTextFrame, myTextFrame2
Dim haichi_1_YS, haichi_1_XS, haichi_1_YE, haichi_1_XE
Dim filde_jyusyo1, filde_jyusyo2, filde_jyusyo3, filde_jyusyo4
Dim Me_size_GH, Me_size_GY
Dim dir_mei, INDD_name
Dim mov_XS, mov_YS
Dim FrameZahyo
Dim myTabStop1, myTabStop2, myTabStop3, myTabStop4, myTabStop5, myTabStop21, myTabStop22
Rem この行は、コメント行です。 先頭に Rem を記入してコメント行とします。
' 'は、この後ろの記述がコメントとなります。 行の記述途中から後ろをコメントとします。
Rem 次の行は、インデザインを起動します。
Set myInDesign = CreateObject("InDesign.Application.CC_J") 'インデザインを起動する
MsgBox "ドキュメントを開きます!"
dir_mei = "I:\自動化\サンプル"
INDD_name = dir_mei & "\テストサンプル.indd"
Set myDocument = myInDesign.Open(INDD_name)
Rem テキストフレームサイズを設定
Set myTextFrame = myDocument.TextFrames.Add
haichi_1_YS = 50
haichi_1_XS = 20
haichi_1_YE = 100
haichi_1_XE = 210
myTextFrame.GeometricBounds = Array(CStr(haichi_1_YS) + "mm", CStr(haichi_1_XS) + "mm", CStr(haichi_1_YE) + "mm", CStr(haichi_1_XE) + "mm")
filde_jyusyo1 = "東京都" & vbTab & "品川区" & vbTab & "中延6-1-29"
filde_jyusyo1 = filde_jyusyo1 & vbCr & "電 話" & vbTab & "03" & vbTab & "3785" & vbTab & "4402"
filde_jyusyo1 = filde_jyusyo1 & vbCr & vbTab & "FAX" & vbTab & "03ー3785ー4401"
filde_jyusyo1 = filde_jyusyo1 & vbCr & vbTab & "E-mail:" & vbTab & "info@" & vbTab & "sanei-rint" & vbTab & ".co" & vbTab & ".jp"
filde_jyusyo1 = filde_jyusyo1 & vbCr & vbTab & "http:www.sanei-print.co.jp"
myTextFrame.Contents = filde_jyusyo1 'テキストフレームに住所データを書き込む
MsgBox "タブの設定"
'タブの設定
Set myTabStop1 = myTextFrame.ParentStory.TabStops.Add
myTabStop1.Alignment = idTabStopAlignment.idLeftAlign
myTabStop1.Position = 20
Set myTabStop2 = myTextFrame.ParentStory.TabStops.Add
myTabStop2.Alignment = idTabStopAlignment.idLeftAlign
myTabStop2.Position = 60
Set myTabStop3 = myTextFrame.ParentStory.TabStops.Add
myTabStop3.Alignment = idTabStopAlignment.idLeftAlign
myTabStop3.Position = 90
MsgBox "リーダーの設定 "
myTabStop3.Leader = ">"
MsgBox "行指定でタブをセット"
Set myTabStop4 = myTextFrame.Paragraphs(4).TabStops.Add
myTabStop4.Position = 10
Set myTabStop5 = myTextFrame.Paragraphs(4).TabStops.Add
myTabStop5.Position = 45
'タブの種類
'idTabStopAlignment.idCenterAlign = 1667591796
'idTabStopAlignment.idCharacterAlign = 1952604515
' idTabStopAlignment.idLeftAlign = 1818584692
'idTabStopAlignment.idRightAlign = 1919379572
MsgBox "タブをリセット"
myTabStop5.Delete
MsgBox "テキストフレーム新規に作成"
Rem テキストフレームサイズを設定
Set myTextFrame2 = myDocument.TextFrames.Add
haichi_1_YS = 150
haichi_1_XS = 20
haichi_1_YE = 200
haichi_1_XE = 210
myTextFrame2.GeometricBounds = Array(CStr(haichi_1_YS) + "mm", CStr(haichi_1_XS) + "mm", CStr(haichi_1_YE) + "mm", CStr(haichi_1_XE) + "mm")
filde_jyusyo1 = vbTab & "250×24575" & vbTab & "="
filde_jyusyo1 = filde_jyusyo1 & vbCr & vbTab & "20×487" & vbTab & "="
filde_jyusyo1 = filde_jyusyo1 & vbCr & vbTab & "458720×42" & vbTab & "="
myTextFrame2.Contents = filde_jyusyo1 'テキストフレームに住所データを書き込む
MsgBox "タブの設定 左"
Set myTabStop22 = myTextFrame2.ParentStory.TabStops.Add
myTabStop22.Position = 100
myTabStop22.Alignment = idTabStopAlignment.idLeftAlign
MsgBox "タブの設定 右"
myTabStop22.Alignment = idTabStopAlignment.idRightAlign
MsgBox "タブの設定 キャラクターセット x"
Set myTabStop21 = myTextFrame2.ParentStory.TabStops.Add
myTabStop21.Position = 30
myTabStop21.AlignmentCharacter = "×"
myTabStop21.Alignment = idTabStopAlignment.idCharacterAlign
End Sub