TOP > blog > 9.インデザインスクリプト 初級講座(5)テキスト操作 段落/行間揃え
インデザインスクリプト
2016/01/23

9.インデザインスクリプト 初級講座(5)テキスト操作 段落/行間揃え

管理者用
blog

今回は、テキストフレーム内の文字そろえの設定方法です。

段落では、左・右。中央・両端…等のそろえる機能を持っています。

 NAVI_VBA_05_025.png

 

行間も、同じく上・下・中間・上下にそろえる設定が出来ます。

 NAVI_VBA_05_022.png

以上の設定をスクリプトで行います。

 

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

 

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

NAVI_VBA_05_001.JPG

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

NAVI_VBA_05_002.png

 

段落の設定

 

NAVI_VBA_05_003.JPG

テキストが、右揃え に設定されました。



'段落の配置位置を指定する

myTextFrame.ParentStory.Justification = idJustification.idRightAlign

 

NAVI_VBA_05_004.png

 

段落設定は、右揃えや両端揃えなど、赤字で示した部分を書き換える事で設定が出来ます。
スクリプトのコメントに、示しましたので、書き換えて試してください。

この文字列は、コンスタント定義されているもので、その値も表示してます。

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 に指定して行ってください。

②で目的のクラスを指定します。

③にののメンバーが表示されます。
  表示されているメンバーを選択すると

④に説明が表示されます。この部分に、定数も表示されます。

 

NAVI_VBA_05_008.png

 

定数を数値で使用しておくと、VBSに変換した時にそのまま動きますので便利です。

myTextFrame.ParentStory.Justification = 1919379572

 

行配置の設定

NAVI_VBA_05_005.JPG

 


'フレーム内の行配置モードを指定する
myTextFrame.TextFramePreferences.VerticalJustification = idVerticalJustification.idCenterAlign '  1667591796 (&H63656E74)'中央

 NAVI_VBA_05_006.png

 段落でも紹介しましたが、定数もコメントで記述してます。

他の定数でも確認して見てください。

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

 

 

 

関連記事