ScriptomでWordに画像を貼付ける
ついでにWord版も作ってみた。こっちも、とあるディレクトリ(c:\temp)にあるひな形ファイル(template.doc)を元に画像を貼付けて結果ファイル(result.doc)を書き出すよ。
Excel版と趣向が違うのは、画像の貼付け場所をフィールドで指定していること。フィールドタイプは{Comments}、フィールドの値+".png"をファイル名として画像を貼付けてる(サイズは75%)。
#「画像ファイルが無かった」とかのエラー処理はやってないので、よろしく。
import org.codehaus.groovy.scriptom.* import org.codehaus.groovy.scriptom.tlb.office.word.* Scriptom.inApartment { def dir = new File("c:/temp") def wdApp = new ActiveXObject('Word.Application') wdApp.visible = false def doc = wdApp.documents.open("${dir.path}/template.doc") def fields = doc.fields fields.update() fields.each { field -> if (field.type == WdFieldType.wdFieldComments) { def filename = "${field.result.text}.png" field.result.with { text = "" inlineShapes.addPicture("${dir.path}/${filename}").with { scaleWidth = 70 scaleHeight = 70 } } } } doc.saveAs("${dir.path}/result.doc") doc.close() wdApp.visible = true wdApp.quit() }
「WSHのほうが簡単じゃね?」なんて野暮なことは言わない。
(追記) 最後に可視化(wdApp.visible = true)して手で終らせるか、wdApp.quit()
で終らせるかは、まあ好みの問題だな。