5. インデザインスクリプト 初級講座(2)保存/閉じる/開く
管理者用初級講座(1)では、インデザインを起動して、ドキュメントまで作成しました。
初級講座(2)では、初級講座(1)にスクリプトをプラスして、ドキュメントを閉じて、再び開くところ迄を行います。
最後にスクリプト全体を表示してますので参照方
VBA 関数の MsgBoxを使用して、スクリプトの各ステップ毎にメッセージを表示するようにしました。
MsgBox関数の実行時点で、メッセージが表示されます。そして、[OK]で次のステップに進むようにしてます。
各ステップの実行結果をインデザインを確認しながら進める事により、記述した命令による実行結果を実感出来ると思います。
スクリプトをスタート
ドキュメントのサイズを設定します。
ドキュメントを作っただけですと、そのサイズは、インデザインの現在の環境により変わってきます。
従って、一番最初にサイズを設定しましょう。
MsgBox "ドキメントサイズをA4サイズに設定します。"
'ドキュメントサイズをセットする。
Me_size_GH = 297
Me_size_GY = 210
With myDocument.DocumentPreferences
.PageHeight = CStr(Me_size_GH) & "mm"
.PageWidth = CStr(Me_size_GY) & "mm"
.FacingPages = False
'*****************************************************************************************
Rem 裁ち落とし
.DocumentBleedBottomOffset = "3p"
.DocumentBleedTopOffset = "3p"
.DocumentBleedInsideOrLeftOffset = "3p"
.DocumentBleedOutsideOrRightOffset = "3p"
Rem 印刷可能領域
.SlugBottomOffset = "20mm"
.SlugTopOffset = "20mm"
.SlugInsideOrLeftOffset = "20mm"
.SlugRightOrOutsideOffset = "20mm"
End With
MsgBox "ドキュメントサイズがA4サイズになっていることを確認!"
ドキュメントのサイズがA4(297×210mm)サイズになっている事を確認して見てください。
また、寸法を変えて試してください。
Me_size_GH = 297
Me_size_GY = 210
テキストフレームを作ります。
MsgBox "テキストフレームを作ります。"
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")
MsgBox "テキストフレームが出来ている事を確認!"
テキストフレームに、文字を入力します。
MsgBox "文字を書込ます。"
'テキストフレームに文字を書き込む。
filde_jyusyo1 = "岩手県盛岡市山田6-7-8"
myTextFrame.Contents = filde_jyusyo1 'テキストフレームに住所データを書き込む
MsgBox "テキストフレームに文字が入力された事を確認!"
ドキュメントを保存します。
事例のスクリプトでは、 dir_mei で、Mドライブを指定してますが、環境に合わせて設定してください。
また、ドキュメントのファイル名を テキストサンプル.indd にしてますが、貴方の好きな名前で指定してください。
MsgBox "ドキュメントを保存します。"
dir_mei = "M:\NAVI_VBA\VBA_002"
INDD_name = dir_mei & "\テストサンプル.indd"
myInDesign.ActiveDocument.Save INDD_name
MsgBox "ドキュメントの保存を確認!"
ドキュメントを閉じます。
MsgBox "ドキュメントを閉じます。"
myInDesign.ActiveDocument.Close
MsgBox "ドキュメントが閉じた事を確認!"
ドキュメントを開く
MsgBox "閉じたドキュメントを開きます!"
Set myDocument = myInDesign.Open(INDD_name)
スクリプト全体です。
コピーして使用できます。
変数は、あなたが使いやすい名前に変えて使っても良いです。
エクセルVBAでは、日本語の変数も使用できますので、 ドキメントサイズ_高さ、ドキメントサイズ_幅・・・・
等を使用しても良いかもしれません。
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
Dim Me_size_GH, Me_size_GY
Dim dir_mei, INDD_name
Rem この行は、コメント行です。 先頭に Rem を記入してコメント行とします。
' 'は、この後ろの記述がコメントとなります。 行の記述途中から後ろをコメントとします。
Rem 次の行は、インデザインを起動します。
Set myInDesign = CreateObject("InDesign.Application.CS4_J") 'インデザインを起動する
Rem 次の行は、ドキュメントを新規に作成します。
Set myDocument = myInDesign.Documents.Add 'ドキュメント作成
MsgBox "ドキメントサイズをA4サイズに設定します。"
'ドキュメントサイズをセットする。
Me_size_GH = 297
Me_size_GY = 210
With myDocument.DocumentPreferences
.PageHeight = CStr(Me_size_GH) & "mm"
.PageWidth = CStr(Me_size_GY) & "mm"
.FacingPages = False
'***************************************************************************************
Rem 裁ち落とし
.DocumentBleedBottomOffset = "3p"
.DocumentBleedTopOffset = "3p"
.DocumentBleedInsideOrLeftOffset = "3p"
.DocumentBleedOutsideOrRightOffset = "3p"
Rem 印刷可能領域
.SlugBottomOffset = "20mm"
.SlugTopOffset = "20mm"
.SlugInsideOrLeftOffset = "20mm"
.SlugRightOrOutsideOffset = "20mm"
End With
MsgBox "ドキュメントサイズがA4サイズになっていることを確認!"
Rem STEP 01 テキストフレームを作って、文字を書き込んで見ます。
MsgBox "テキストフレームを作ります。"
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")
MsgBox "テキストフレームが出来ている事を確認!"
MsgBox "文字を書込ます。"
'テキストフレームに文字を書き込む。
filde_jyusyo1 = "岩手県盛岡市山田6-7-8"
myTextFrame.Contents = filde_jyusyo1 'テキストフレームに住所データを書き込む
MsgBox "テキストフレームに文字が入力された事を確認!"
MsgBox "ドキュメントを保存します。"
dir_mei = "M:\NAVI_VBA\VBA_002"
INDD_name = dir_mei & "\テストサンプル.indd"
myInDesign.ActiveDocument.Save INDD_name
MsgBox "ドキュメントの保存を確認!"
MsgBox "ドキュメントを閉じます。"
myInDesign.ActiveDocument.Close
MsgBox "ドキュメントが閉じた事を確認!"
MsgBox "閉じたドキュメントを開きます!"
Set myDocument = myInDesign.Open(INDD_name)
End Sub