9.インデザインスクリプト 初級講座(5)テキスト操作 段落/行間揃え
管理者用今回は、テキストフレーム内の文字そろえの設定方法です。
段落では、左・右。中央・両端…等のそろえる機能を持っています。
行間も、同じく上・下・中間・上下にそろえる設定が出来ます。
以上の設定をスクリプトで行います。
ボタンのクリックイベントに、ページの最後に記述している スクリプト全体を記入してください。コピーしても問題ありません。
ボタンのクリックで、スクリプトがスターとします。
指定した、インデザインドキメントだ開き、 テキストフレームが作られて、操作対象となる文字が流し込まれています。
段落の設定
テキストが、右揃え に設定されました。
'段落の配置位置を指定する
myTextFrame.ParentStory.Justification = idJustification.idRightAlign
段落設定は、右揃えや両端揃えなど、赤字で示した部分を書き換える事で設定が出来ます。
スクリプトのコメントに、示しましたので、書き換えて試してください。
この文字列は、コンスタント定義されているもので、その値も表示してます。
myTextFrame.ParentStory.Justification = idJustification.idRightAlign
したがって、= より右を(赤い部分)を次の行の 数値で記述しても問題ありません。
どちらかと言うと、数値で記述した方が良いと思います。
myTextFrame.ParentStory.Justification = idJustification.idRightAlign
myTextFrame.ParentStory.Justification = 1667920756
'idAwayFromBindingSide = 1633772147 (&H61616273)
'idCenterAlign = 1667591796 (&H63656E74)
'idCenterJustified = 1667920756 (&H636A7374)'中央
'idFullyJustified = 1718971500 (&H66756C6C)'両端
'idLeftAlign = 1818584692 (&H6C656674)
'idLeftJustified = 1818915700 (&H6C6A7374)
'idRightAlign = 1919379572 (&H72676874)'末
'idRightJustified = 1919578996 (&H726A7374)
'idToBindingSide = 1630691955 (&H61326273)
この数値を調べる方法として、 VBスクリプト・ウインドウ から オブジェクトブラザーを開いて[表示 → オブジェクトブラザー] 調べる事が出来ます。
オブジェクトブラザー画面で
①で idJustification を 検索します InDezign に指定して行ってください。
②で目的のクラスを指定します。
③にののメンバーが表示されます。
表示されているメンバーを選択すると
④に説明が表示されます。この部分に、定数も表示されます。
定数を数値で使用しておくと、VBSに変換した時にそのまま動きますので便利です。
myTextFrame.ParentStory.Justification = 1919379572
行配置の設定
'フレーム内の行配置モードを指定する
myTextFrame.TextFramePreferences.VerticalJustification = idVerticalJustification.idCenterAlign ' 1667591796 (&H63656E74)'中央
段落でも紹介しましたが、定数もコメントで記述してます。
他の定数でも確認して見てください。
myTextFrame.TextFramePreferences.VerticalJustification = idVerticalJustification.idCenterAlign
'idBottomAlign = 1651471469 (&H626F746D)'行下揃え
'idCenterAlign = 1667591796 (&H63656E74)'中央
'idJustifyAlign = 1785951334 (&H6A737466)'両端そろえ
'idTopAlign = 1953460256 (&H746F7020)'トップ
スクリプト全体
Option Explicit
Private Sub CommandButton1_Click()
Dim myInDesign, myDocument, myTextFrame
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
Rem この行は、コメント行です。 先頭に Rem を記入してコメント行とします。
' 'は、この後ろの記述がコメントとなります。 行の記述途中から後ろをコメントとします。
Rem 次の行は、インデザインを起動します。
'Set myInDesign = CreateObject("InDesign.Application.CS4_J") 'インデザインを起動する
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
Rem テキストフレームサイズを変更
haichi_1_YS = 100
haichi_1_XS = 20
haichi_1_YE = 150
haichi_1_XE = 180
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 = "東京都品川区中延6-1-29"
filde_jyusyo1 = filde_jyusyo1 & vbCr & "電 話03ー3785ー4402"
filde_jyusyo1 = filde_jyusyo1 & vbCr & "FAX03ー3785ー4401"
filde_jyusyo1 = filde_jyusyo1 & vbCr & "E-mail:info@sanei-rint.co.jp"
filde_jyusyo1 = filde_jyusyo1 & vbCr & "http:www.sanei-print.co.jp"
myTextFrame.Contents = filde_jyusyo1 'テキストフレームに住所データを書き込む
MsgBox "段落の配置モードを指定する。"
'段落の配置位置を指定する
myTextFrame.ParentStory.Justification = idJustification.idRightAlign
'idAwayFromBindingSide = 1633772147 (&H61616273)
'idCenterAlign = 1667591796 (&H63656E74)
'idCenterJustified = 1667920756 (&H636A7374)'中央
'idFullyJustified = 1718971500 (&H66756C6C)'両端
'idLeftAlign = 1818584692 (&H6C656674)
'idLeftJustified = 1818915700 (&H6C6A7374)
'idRightAlign = 1919379572 (&H72676874)'末
'idRightJustified = 1919578996 (&H726A7374)
'idToBindingSide = 1630691955 (&H61326273)
MsgBox "フレーム内の行配置モードを指定する。"
'フレーム内の行配置モードを指定する
myTextFrame.TextFramePreferences.VerticalJustification = idVerticalJustification.idCenterAlign ' 1667591796 (&H63656E74)'中央
'idBottomAlign = 1651471469 (&H626F746D)'行下揃え
'idCenterAlign = 1667591796 (&H63656E74)'中央
'idJustifyAlign = 1785951334 (&H6A737466)'両端そろえ
'idTopAlign = 1953460256 (&H746F7020)'トップ
End Sub