TOP > blog > 名刺をWordで作る VBスクリプト(vbs)で自動組版(2)
スクリプト
2018/02/19

名刺をWordで作る VBスクリプト(vbs)で自動組版(2)

管理者用
blog

前回の自動組版(1)では、名前のテキストフレームを作成して、名前データを書き込むまでを行いました。
まずは、テキストフレームを配置出来ました。
テキストフレームが1つ出来れば、他の項目も同じようなものです。
技術的には、出来たのも同然ですが、先に進めて行く上で、どのような名刺にするか、大雑把な仕様を決めておく事にします。

名刺のレイアウト仕様

横書きのオーソドックスな名刺のレイアウトで進めます。

 

テキストの配置は、次のブロック単位で考える事にします。

・部署ブロック 名前の上に配置 3行迄 役員名も含む 下揃え
・肩書ブロック 名前の前に配置 2行までとする 左揃え
・名前ブロック 姓名の文字数により文字間を調整  
・住所ブロック 名前の下に配置 携帯も含む 5行まで 上揃え
・ロゴ社名ブロック 上側に固定配置 画像を使用

 

画像の配置

会社のロゴを画像を使用します。

先に進む前に、ロゴ画像のレイアウトの方法を紹介しておきます。
他の方法も有るとは思いますが、テキストファイルを作って、
ここにレイアウトする方法で行っていきます。

従って、テキストファイルのサブルーチンをそのまま使用しても良いのですが
ここでは、画像ファイルレイアウト専用に ”画像フレーム作成” サブルーチンを書きました。 


'画像フレーム作成
Sub gzoAdd_Y(Gazo_In,XS,YS,XW,YH)
Rem (画像保存場所パス,X座標,Y座標,幅,高さ)

	Set gzoFramCall = docWord.Shapes.AddTextbox("1",XS,YS,XW,YH) 'テキストフレーム作成
	gzoFramCall.Fill.UserPicture Gazo_In
	gzoFramCall.Line.Visible = msoFalse '枠線無しに
End Sub

 

 

 

 スクリプト全体 画像のレイアウト Mashi_Word 002.vbs

 以下のスクリプトをコピーして試してください。
画像ファイル及び、ファイルパスの部分は書換えて使用してください。

'===========メインルーチン=============
Dim myWord
Dim docWord
Dim Dat_namae
Dim TextFramCall, gzoFramCall

Set myWord = CreateObject("Word.Application")	' Word 起動
Set docWord = myWord.Documents.Add		 ' 新規ドキュメント作成
myWord.Visible = True ' Word を表示する
'
'*******ドキメントサイズを変更*******

	youshiW = MillimetersToPoints(91)
	youshiH = MillimetersToPoints(55)
	Topichi = 0
	botichi = 0
	Lefichi = 0
	Rigichi = 0

	With docWord.PageSetup
		.TopMargin = Topichi
		.BottomMargin = botichi
		.LeftMargin = Lefichi
		.RightMargin = Rigichi
		.PageWidth = youshiW
		.PageHeight = youshiH
        End With
'*********************

'=========画像フレーム作成=========
XS = 30
YS = 15
XW = 43
YH = 17.6
Rem 画像ファイルの保存場所を指定します
Gazo_In = "C:\Users\sanei\Desktop\三栄ロゴ.png"
call gzoAdd_Y(Gazo_In,XS,YS,XW,YH)

'===========メインルーチン終わり==========


'*******************************
'************ Subルーチン ***********
'*******************************

'画像フレーム作成
Sub gzoAdd_Y(Gazo_In,XS,YS,XW,YH)
Rem (画像保存場所パス,X座標,Y座標,幅,高さ)

	Set gzoFramCall = docWord.Shapes.AddTextbox("1",XS,YS,XW,YH) 'テキストフレーム作成
	gzoFramCall.Fill.UserPicture Gazo_In
	gzoFramCall.Line.Visible = msoFalse '枠線無しに
End Sub


Function MillimetersToPoints(mill)
	MillimetersToPoints = mill / 0.35277
End Function

 

関連記事