TOP > blog > 14.インデザインスクリプト 初級講座(10) 画像の配置
インデザインスクリプト
2016/02/09

14.インデザインスクリプト 初級講座(10) 画像の配置

管理者用
blog

今回は、画像ファイルの取り込みを紹介します。

テキストフレーム周りの大方の設定方法は、今までのステップで紹介してますので、今回の画像の取り込みと合わせると、だいたいの組版の自動化が可能となります。

今回は、名刺を意識して、名刺サイズにレイアウトするようにしています。

 

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

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

 NAVI_VBA_06_001.JPG

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

 NAVI_VBA_08_01.png

 

 開いたドキュメントを名刺サイズに設定

テキストフレームに住所データを流し込み

住所データのフォントサイズを8Pに

行間を1pにそれぞれ設定してます。

 NAVI_VBA_10_001.JPG

 

画像ファイルの読み込み

NAVI_VBA_10_002.JPG

テキストフレームを作成

画像フレームにして、画像ファイルを流し込んでいます。

 


 
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)
                

 

NAVI_VBA_10_003.JPG

 

NAVI_VBA_10_004.JPG

 

                    
 
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)

               

 NAVI_VBA_10_005.JPG

NAVI_VBA_10_006.JPG



MsgBox "画像フレームを縮小させる"
'テキストフレームを拡大/縮小させる。
myTextFrame1.HorizontalScale = 80
myTextFrame1.VerticalScale = 80

NAVI_VBA_10_007.JPG

  


 スクリプト全体

 

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


 

 

関連記事