TOP > blog > 5. インデザインスクリプト 初級講座(2)保存/閉じる/開く
インデザインスクリプト
2015/12/24

5. インデザインスクリプト 初級講座(2)保存/閉じる/開く

管理者用
blog

初級講座(1)では、インデザインを起動して、ドキュメントまで作成しました。

初級講座(2)では、初級講座(1)にスクリプトをプラスして、ドキュメントを閉じて、再び開くところ迄を行います。

最後にスクリプト全体を表示してますので参照方

VBA 関数の MsgBoxを使用して、スクリプトの各ステップ毎にメッセージを表示するようにしました。
MsgBox関数の実行時点で、メッセージが表示されます。そして、[OK]で次のステップに進むようにしてます。
各ステップの実行結果をインデザインを確認しながら進める事により、記述した命令による実行結果を実感出来ると思います。

 NAVI_IND_02_01.png

 

スクリプトをスタート

 

NAVI_IND_02_02.png

 

ドキュメントのサイズを設定します。

ドキュメントを作っただけですと、そのサイズは、インデザインの現在の環境により変わってきます。

従って、一番最初にサイズを設定しましょう。

NAVI_IND_02_03.png

 


 


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サイズになっていることを確認!"

 

NAVI_IND_02_04.png

 ドキュメントのサイズがA4(297×210mm)サイズになっている事を確認して見てください。
また、寸法を変えて試してください。

Me_size_GH = 297

Me_size_GY = 210

 

NAVI_IND_02_05.png

 

 

テキストフレームを作ります。

 NAVI_IND_02_06.png

 


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 "テキストフレームが出来ている事を確認!"

 

NAVI_IND_02_07.png

 

NAVI_IND_02_08-1.png

 

 テキストフレームに、文字を入力します。

 NAVI_IND_02_09.png

 


MsgBox "文字を書込ます。"

'テキストフレームに文字を書き込む。

filde_jyusyo1 = "岩手県盛岡市山田6-7-8"
myTextFrame.Contents = filde_jyusyo1    'テキストフレームに住所データを書き込む


MsgBox "テキストフレームに文字が入力された事を確認!"

 

NAVI_IND_02_10-1.png

 

 

ドキュメントを保存します。

 NAVI_IND_02_11.png

 事例のスクリプトでは、 dir_mei で、Mドライブを指定してますが、環境に合わせて設定してください。
また、ドキュメントのファイル名を テキストサンプル.indd にしてますが、貴方の好きな名前で指定してください。


MsgBox "ドキュメントを保存します。"

dir_mei = "M:\NAVI_VBA\VBA_002"

INDD_name = dir_mei & "\テストサンプル.indd"
myInDesign.ActiveDocument.Save INDD_name

MsgBox "ドキュメントの保存を確認!"

 

NAVI_IND_02_12.png

ドキュメントを閉じます。

 NAVI_IND_02_13.png

  


MsgBox "ドキュメントを閉じます。"

myInDesign.ActiveDocument.Close

MsgBox "ドキュメントが閉じた事を確認!"

 NAVI_IND_02_14.png

 

ドキュメントを開く

 NAVI_IND_02_15.png

 

MsgBox "閉じたドキュメントを開きます!"

Set myDocument = myInDesign.Open(INDD_name)

 NAVI_IND_02_16.png

 

スクリプト全体です。

コピーして使用できます。

変数は、あなたが使いやすい名前に変えて使っても良いです。
エクセル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


 

 

関連記事