TOP > blog > 12.インデザインスクリプト 初級講座(8) 字取、縦書き、縦中横
インデザインスクリプト
2016/01/30

12.インデザインスクリプト 初級講座(8) 字取、縦書き、縦中横

管理者用
blog

インデザインの字取、縦中横を設定する場合は、いずれも、対象のキャラクターを選択する必要があります。
今回は、字取、縦書き、縦中横の使い方の説明ですが、キャラクターの選択方法も合わせてみてください。
前回までは、キャラクタ、行の選択まででしたが、範囲指定に対する、設定も合わせて試してみてください。

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

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

 NAVI_VBA_06_001.JPG

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

 

NAVI_VBA_08_01.png

 

NAVI_VBA_08_02.png

 

字取り

NAVI_VBA_08_03.png

 



MsgBox "字取り"

'字取り

Set myStartCharacter = myTextFrame.ParentStory.Paragraphs.Item(2).Characters.Item(1)
Set myEndCharacter = myTextFrame.ParentStory.Paragraphs.Item(2).Characters.Item(3)
myTextFrame.Texts.ItemByRange(myStartCharacter, myEndCharacter).Item(1).Jidori = 9

Set myStartCharacter = myTextFrame.ParentStory.Paragraphs.Item(3).Characters.Item(1)
Set myEndCharacter = myTextFrame.ParentStory.Paragraphs.Item(3).Characters.Item(3)
myTextFrame.Texts.ItemByRange(myStartCharacter, myEndCharacter).Item(1).Jidori = 9

Set myStartCharacter = myTextFrame.ParentStory.Paragraphs.Item(4).Characters.Item(1)
Set myEndCharacter = myTextFrame.ParentStory.Paragraphs.Item(4).Characters.Item(6)
myTextFrame.Texts.ItemByRange(myStartCharacter, myEndCharacter).Item(1).Jidori = 9

'myTextFrame.Texts.ItemByRange(myStartCharacter, myEndCharacter).Item(1).PointSize = 8


 

電話/FAX/E-maileの部分を9文字で字取の設定をしました。

 'myTextFrame.Texts.ItemByRange(myStartCharacter, myEndCharacter).Item(1).PointSize = 8

コメント行にしてますが、選択した部分のフォントサイズを変える例です。コメントを外して、試してください。

NAVI_VBA_08_04.png

 縦書き

NAVI_VBA_08_05.png

 


'縦書き
MsgBox "縦書きに変き"

haichi_1_YS = 100
haichi_1_XS = 10
haichi_1_YE = 200
haichi_1_XE = 100

myTextFrame.GeometricBounds = Array(CStr(haichi_1_YS) + "mm", CStr(haichi_1_XS) + "mm", CStr(haichi_1_YE) + "mm", CStr(haichi_1_XE) + "mm")

myTextFrame.ParentStory.StoryPreferences.StoryOrientation = idHorizontalOrVertical.idVertical 'idHorizontalOrVertical.idVertical '1986359924'縦書き
 

縦書きに変えるため、フレームのサイズも変更してます。

NAVI_VBA_08_06.png

 

縦中横

NAVI_VBA_08_07.png

 


'縦中横
MsgBox "縦中横をセット"

Set myStartCharacter = myTextFrame.ParentStory.Paragraphs.Item(2).Characters.Item(6)
Set myEndCharacter = myTextFrame.ParentStory.Paragraphs.Item(2).Characters.Item(7)

myTextFrame.Texts.ItemByRange(myStartCharacter, myEndCharacter).Item(1).Tatechuyoko = True

Set myStartCharacter = myTextFrame.ParentStory.Paragraphs.Item(3).Characters.Item(6)
Set myEndCharacter = myTextFrame.ParentStory.Paragraphs.Item(3).Characters.Item(7)

myTextFrame.Texts.ItemByRange(myStartCharacter, myEndCharacter).Item(1).Tatechuyoko = True

End Sub

 

電話番号、FAX番号の最初の 03 を縦中横に設定しました

NAVI_VBA_08_08.png

 

 


 スクリプト全体

 

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
Dim myTabStop1, myTabStop2
Dim myStartCharacter, myEndCharacter

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

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 & "FAX: 03ー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 "字取り"

'字取り
Set myStartCharacter = myTextFrame.ParentStory.Paragraphs.Item(2).Characters.Item(1)
Set myEndCharacter = myTextFrame.ParentStory.Paragraphs.Item(2).Characters.Item(3)
myTextFrame.Texts.ItemByRange(myStartCharacter, myEndCharacter).Item(1).Jidori = 9

Set myStartCharacter = myTextFrame.ParentStory.Paragraphs.Item(3).Characters.Item(1)
Set myEndCharacter = myTextFrame.ParentStory.Paragraphs.Item(3).Characters.Item(3)
myTextFrame.Texts.ItemByRange(myStartCharacter, myEndCharacter).Item(1).Jidori = 9

Set myStartCharacter = myTextFrame.ParentStory.Paragraphs.Item(4).Characters.Item(1)
Set myEndCharacter = myTextFrame.ParentStory.Paragraphs.Item(4).Characters.Item(6)
myTextFrame.Texts.ItemByRange(myStartCharacter, myEndCharacter).Item(1).Jidori = 9

'myTextFrame.Texts.ItemByRange(myStartCharacter, myEndCharacter).Item(1).PointSize = 8


'縦中横
MsgBox "縦中横をセット"

haichi_1_YS = 100
haichi_1_XS = 10
haichi_1_YE = 200
haichi_1_XE = 100

myTextFrame.GeometricBounds = Array(CStr(haichi_1_YS) + "mm", CStr(haichi_1_XS) + "mm", CStr(haichi_1_YE) + "mm", CStr(haichi_1_XE) + "mm")

myTextFrame.ParentStory.StoryPreferences.StoryOrientation = idHorizontalOrVertical.idVertical 'idHorizontalOrVertical.idVertical '1986359924'縦書き

Set myStartCharacter = myTextFrame.ParentStory.Paragraphs.Item(2).Characters.Item(6)
Set myEndCharacter = myTextFrame.ParentStory.Paragraphs.Item(2).Characters.Item(7)
myTextFrame.Texts.ItemByRange(myStartCharacter, myEndCharacter).Item(1).Tatechuyoko = True

Set myStartCharacter = myTextFrame.ParentStory.Paragraphs.Item(3).Characters.Item(6)
Set myEndCharacter = myTextFrame.ParentStory.Paragraphs.Item(3).Characters.Item(7)
myTextFrame.Texts.ItemByRange(myStartCharacter, myEndCharacter).Item(1).Tatechuyoko = True

End Sub


 

 

関連記事