TOP > blog > 11.インデザインスクリプト 初級講座(7) タブの設定
インデザインスクリプト
2016/01/29

11.インデザインスクリプト 初級講座(7) タブの設定

管理者用
blog

インデザインスクリプト タブ のセットについて紹介します。

ボタンのクリックイベントに、ページの最後に記述している スクリプト全体を記入してください。コピーしても問題ありません。

ボタンのクリックで、スクリプトがスターとします。

 NAVI_VBA_06_001.JPG

 指定した、インデザインドキメントを開き、 テキストフレームが作られて、操作対象となる文字が流し込まれています。

 

NAVI_VBA_07_01.png

 

タブのセットの確認のため、いつものデータにタブコードをあちらこちら入れました。
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    'テキストフレームに住所データを書き込む 

NAVI_VBA_07_02.png

 

タブ位置のセット

NAVI_VBA_07_03.png

 



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

 タブウインドウを表示させておいて、テキストフレームを選択してタブ位置のセット状態を確認してください。

全て、左揃えでセットしました。

NAVI_VBA_07_04.png

 

リーダーの設定

NAVI_VBA_07_05.png

 

MsgBox "リーダーの設定 "

myTabStop3.Leader = ">"


 リーダーを [ > ] にセットしてます。

NAVI_VBA_07_06.png

 

特定行にタブセット

NAVI_VBA_07_07.png

 

MsgBox "行指定でタブをセット"

Set myTabStop4 = myTextFrame.Paragraphs(4).TabStops.Add
myTabStop4.Position = 10
Set myTabStop5 = myTextFrame.Paragraphs(4).TabStops.Add
myTabStop5.Position = 45

例では、4行目に対しタブをセットしてます。

テキストフレームの4行目を選択して、タブのセットを確認してください。

NAVI_VBA_07_08.png

 

タブのリセット

NAVI_VBA_07_09.png

 MsgBox "タブをリセット"

myTabStop5.Delete

 

NAVI_VBA_07_10.png

テキストフレーム作成

NAVI_VBA_07_11.png

 

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
 

タブウインドウを新規に作ったテキストフレームの上に移動しておいてください。

NAVI_VBA_07_12.png

 

タブを左揃え

NAVI_VBA_07_13.png

 


MsgBox "タブの設定 左"

Set myTabStop22 = myTextFrame2.ParentStory.TabStops.Add

myTabStop22.Position = 100

myTabStop22.Alignment = idTabStopAlignment.idLeftAlign
 

 NAVI_VBA_07_14.png

 

タブを右揃え

NAVI_VBA_07_15.png

 

MsgBox "タブの設定 右"

myTabStop22.Alignment = idTabStopAlignment.idRightAlign
 

 NAVI_VBA_07_16.png

 タブを特定キャラクター文字揃え

NAVI_VBA_07_17.png

 

MsgBox "タブの設定 キャラクターセット x"

Set myTabStop21 = myTextFrame2.ParentStory.TabStops.Add
myTabStop21.Position = 30
myTabStop21.AlignmentCharacter = "×"
myTabStop21.Alignment = idTabStopAlignment.idCharacterAlign

 NAVI_VBA_07_18.png

   


 

スクリプト全体

 

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


 

 

関連記事