インデザインスクリプト
2016/02/09
14.インデザインスクリプト 初級講座(10) 画像の配置
管理者用今回は、画像ファイルの取り込みを紹介します。
テキストフレーム周りの大方の設定方法は、今までのステップで紹介してますので、今回の画像の取り込みと合わせると、だいたいの組版の自動化が可能となります。
今回は、名刺を意識して、名刺サイズにレイアウトするようにしています。
ボタンのクリックイベントに、ページの最後に記述している スクリプト全体を記入してください。コピーしても問題ありません。
ボタンのクリックで、スクリプトがスターとします。
指定した、インデザインドキメントが開き、 テキストフレームが作られて、操作対象となる文字が流し込まれています。
開いたドキュメントを名刺サイズに設定
テキストフレームに住所データを流し込み
住所データのフォントサイズを8Pに
行間を1pにそれぞれ設定してます。
画像ファイルの読み込み
テキストフレームを作成
画像フレームにして、画像ファイルを流し込んでいます。
MsgBox "画像ファイルを取り込みます。"
gazFile = dir_mei & "\sanei-rogo.eps"
haichi_1_YS = 6
haichi_1_XS = 8
haichi_1_YE = 20
haichi_1_XE = 91
Set myTextFrame1 = myDocument.TextFrames.Add
myTextFrame1.GeometricBounds = Array(CStr(haichi_1_YS) + "mm", CStr(haichi_1_XS) + "mm", CStr(haichi_1_YE) + "mm", CStr(haichi_1_XE) + "mm")
Rem テキストフレームのサイズと形を指定します。
myTextFrame1.Place (gazFile)
MsgBox "フレームを画像にフィット"
myTextFrame1.Fit (idFitOptions.idFrameToContent) '1718906723
'myTextFrame1.Fit idFitOptions.idContentToFrame '1668575078
'myTextFrame1.Fit (idFitOptions.idFrameToContent) '1718906723
'idContentToFrame = 1668575078 (&H63746F66)
'idApplyFrameFittingOptions = 1634100847 (&H6166666F)
'idCenterContent = 1667591779 (&H63656E63)
'idFillProportionally = 1718185072 (&H66696C70)
'idFrameToContent = 1718906723 (&H66746F63)
'idProportionally = 1668247152 (&H636F6E70)
MsgBox "画像フレームを縮小させる"
'テキストフレームを拡大/縮小させる。
myTextFrame1.HorizontalScale = 80
myTextFrame1.VerticalScale = 80
スクリプト全体
Option Explicit
Private Sub CommandButton1_Click()
Dim myInDesign, myDocument, myTextFrame, myTextFrame1
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, font_mei, font_W, font_P
Dim myStartCharacter, myEndCharacter
Dim gazFile
Set myInDesign = CreateObject("InDesign.Application.CC_J") 'インデザインを起動する
MsgBox "ドキュメントを開きます!"
dir_mei = "G:\NAVI_VBA"
INDD_name = dir_mei & "\テストサンプル.indd"
Set myDocument = myInDesign.Open(INDD_name)
'ドキュメントサイズをセットする。
Me_size_GH = 55
Me_size_GY = 91
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 = "3mm"
.SlugTopOffset = "3mm"
.SlugInsideOrLeftOffset = "3mm"
.SlugRightOrOutsideOffset = "3mm"
End With
Rem テキストフレームサイズを設定
Set myTextFrame = myDocument.TextFrames.Add
Rem テキストフレームサイズを変更
haichi_1_YS = 35
haichi_1_XS = 10
haichi_1_YE = 55
haichi_1_XE = 91
myTextFrame.GeometricBounds = Array(CStr(haichi_1_YS) + "mm", CStr(haichi_1_XS) + "mm", CStr(haichi_1_YE) + "mm", CStr(haichi_1_XE) + "mm")
'フォントを指定する
font_mei = "MS ゴシック"
font_W = "Regular"
myTextFrame.ParentStory.AppliedFont = font_mei
myTextFrame.ParentStory.FontStyle = font_W
'フォントサイズ指定する
font_P = 8
myTextFrame.ParentStory.PointSize = CStr(font_P)
'行間を指定する。
myTextFrame.ParentStory.Leading = font_P + 1 '行送りの設定
'テキストフレームに住所データを書き込む
filde_jyusyo1 = "〒142-0053 東京都品川区中延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 "画像ファイルを取り込みます。"
gazFile = dir_mei & "\sanei-rogo.eps"
haichi_1_YS = 6
haichi_1_XS = 8
haichi_1_YE = 20
haichi_1_XE = 91
Set myTextFrame1 = myDocument.TextFrames.Add
myTextFrame1.GeometricBounds = Array(CStr(haichi_1_YS) + "mm", CStr(haichi_1_XS) + "mm", CStr(haichi_1_YE) + "mm", CStr(haichi_1_XE) + "mm")
myTextFrame1.ContentType = idContentType.idGraphicType '1735553140
Rem テキストフレームのサイズと形を指定します。
myTextFrame1.Place (gazFile)
MsgBox "フレームを画像にフィット"
myTextFrame1.Fit (idFitOptions.idFrameToContent) '1718906723
'myTextFrame1.Fit idFitOptions.idContentToFrame '1668575078
'myTextFrame1.Fit (idFitOptions.idFrameToContent) '1718906723
'idContentToFrame = 1668575078 (&H63746F66)
'idApplyFrameFittingOptions = 1634100847 (&H6166666F)
'idCenterContent = 1667591779 (&H63656E63)
'idFillProportionally = 1718185072 (&H66696C70)
'idFrameToContent = 1718906723 (&H66746F63)
'idProportionally = 1668247152 (&H636F6E70)
MsgBox "画像フレームを縮小させる"
'テキストフレームを拡大/縮小させる。
myTextFrame1.HorizontalScale = 80
myTextFrame1.VerticalScale = 80
End Sub