10.インデザインスクリプト 初級講座(6) インデント/アウトライン/削除
管理者用テキストフレーム内のインデントの設定と、ベースライン、アウトラインの設定方法及び、削除方法です。
今までは、テキストフレームに対しての設定がメインでしたが、行や文字位置を指定して操作する方法が含まれています。
色々な場面で、使う事が多いと思われます。
ボタンのクリックイベントに、ページの最後に記述している スクリプト全体を記入してください。コピーしても問題ありません。
ボタンのクリックで、スクリプトがスターとします。
指定した、インデザインドキメントだ開き、 テキストフレームが作られて、操作対象となる文字が流し込まれています。
インデントの設定
MsgBox "インデントの指定"
'インデントの指定
myTextFrame.Paragraphs.Item(2).FirstLineIndent = "10mm"
2行目にインデントが設定されました。
2行目にカーソルを持って行くと、段落タブのインデントが設定されているのが判ります。
myTextFrame.Paragraphs.Item(2).FirstLineIndent = "10mm"
Paragraphs.Item(2) の記述で2行目を指定しています。
今まで、テキストフレームに対して、設定の例で説明してきましたが、
行に対し指定したい場合は、 Paragraphs.Item(2) の記述で操作できます。
他の設定においても、試してみてください。
ベースラインを設定する
MsgBox "文字のベースラインを指定する"
'文字のベースラインを指定する
myTextFrame.Characters(2).BaselineShift = "2pt"
myTextFrame.Paragraphs.Item(2).BaselineShift = "4pt"
2文字目の 京 の文字が 2pt上に移動してます。
また、2行目全体が4pt上に移動しました。
Characters(2) は2文字目を表します
Paragraphs.Item(2) は2行目を表します。
削除操作
段落を削除
MsgBox "段落を削除します。"
'段落の削除
myTextFrame.Paragraphs(2).Delete
電話の行が削除されました。
文字を削除する
MsgBox "文字を削除を削除します。"
'文字の削除
myTextFrame.Characters(2).Delete
2文字目の京の文字が削除されました
段落と文字位置を指定して削除します。
MsgBox "段落 文字の削除します。"
'段落 文字の削除
myTextFrame.Paragraphs(2).Characters(2).Delete
2行目の2文字目のAが削除されました。
アウトラインを作成する。
MsgBox "文字のアウトラインを作成する"
'文字のアウトラインを作成する
'myTextFrame.CreateOutlines (False) '元データを残す
myTextFrame.Characters(2).CreateOutlines (True)
(False) は、元のデータを残して、アウトラインをとったものが上に配置されます。
ここでは、 (True) を指定して、元のデータにアウトライン化を実行します。
2文字目をアウトラインがかかってます。
段落のアウトライン
MsgBox "二行目のアウトラインを作成する"
myTextFrame.Paragraphs.Item(2).CreateOutlines (True)
2行目がアウトライン
フレームのアウトライン
MsgBox "フレーム アウトラインを作成する"
myTextFrame.CreateOutlines (True)
フレーム内すべてをアウトライン化
スクリプト全体
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
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
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.Paragraphs.Item(2).FirstLineIndent = "10mm"
MsgBox "文字のベースラインを指定する"
'文字のベースラインを指定する
myTextFrame.Characters(2).BaselineShift = "2pt"
myTextFrame.Paragraphs.Item(2).BaselineShift = "4pt"
MsgBox "段落指定で削除。"
'段落の削除
myTextFrame.Paragraphs(2).Delete
MsgBox "文字位置指定で削除"
'文字の削除
myTextFrame.Characters(2).Delete
MsgBox "段落/文字位置指定で削除"
'段落 文字の削除
myTextFrame.Paragraphs(2).Characters(2).Delete
MsgBox "文字のアウトラインを作成する"
'文字のアウトラインを作成する
'myTextFrame.CreateOutlines (False) '元データを残す
myTextFrame.Characters(2).CreateOutlines (True)
MsgBox "二行目のアウトラインを作成する"
myTextFrame.Paragraphs.Item(2).CreateOutlines (True)
MsgBox "フレーム アウトラインを作成する"
myTextFrame.CreateOutlines (True)
End Sub