1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

プロデルでWordの図形を制御する

Posted at

前回の続きです。キャンバスに描画した熱型表を印刷するところまで来ましたが、プロデルの印刷する手順では96dpi相当のイメージとして印刷されるようです。そこで、描画したものを一旦画像ファイルに保存し、Microsoft Wordに貼り付けて印刷することにしました。

ワード図形のサンプル

情報が少ないので、ワード図形のマニュアルにあるサンプルをもとにします。

ワード図形サンプル
ワードを起動する
ワードへ文章を作成してDとする
Dに「イラスト.jpg」を画像として追加してPとする
Pの大きさは、{300,300}

これを実行すると画像ファイルをワード文書に貼り付けられるのですが、注意すべき点として

  • 3行目の画像ファイルはフルパスで指定する。Shapes.AddPicture メソッドの仕様らしく、実行しているプロデルファイルと同一フォルダにあってもエラーとなります。
  • 4行目の大きさの指定を省略すると、貼り付けが実行されません。というか、大きさの初期値が{0,0}なのかもしれません。

サンプルに手を加える

熱型表は横向きで1枚ずつ印刷しますので、印刷の向きを横、余白を適宜設定した.docxファイルを作っておき、それに貼り付けていくことにします。作業フォルダは、D:\tempとし、D:\temp\outputフォルダには、output0001.png, output0002.png...という作成済みの画像があるものとします。連続してこれら画像を貼り付けるため、サンプルに手を加えます。

用紙横向きで画像の貼り付け
ワードを起動する
ワードで「D:\temp\output.docx」を開いてDとする
10回値にカウントしながら繰り返す
Dに「D:\temp\output\output[値を4桁に整えたもの].png」を画像として追加して対象とする
対象の大きさは、{300,300}
繰り返し終わり
ワードを「[デスクトップ]テスト.docx」に保存する

既存の.docxファイルを開く際もフルパス指定にするようです。これを実行すると、最後のoutput0010.pngだけ貼り付けられた結果となります。画像は「文字列の折り返し」が「前面」で貼り付けられるので選択状態となっています。ここに次の画像を貼り付けるとそれと入れ代わってしまうので、画像貼り付けの「上書き」を繰り返すことになります。

元実体を使う

貼り付けの度にワード選択範囲をうまく設定して、図形のアンカー位置を変えていけば「上書き」を回避できそうですが、そもそも「文字列の折り返し」を「行内」に設定できれば済む話です。プロデルの設定項目や手順にはないので、Shapeオブジェクトのメソッドを使うことにします(https://koukimra.com/archives/2020)。
ワード図形の元実体が貼り付けた画像のShapeオブジェクトとなり、VBAやPowershellのようにアクセスできますが、記法が異なります。Sを画像のShapeオブジェクトとして、ConvertToInlineShapeメソッドで行内に設定するには、

VBA, Powershell
S.ConvertToInlineShape
プロデル
Sは、出力画像の元実体
S:ConvertToInlineShape()

となります。以下はこれを追加したものです。

元実体からメソッドにアクセス
ワードを起動する
ワードで「D:\temp\output.docx」を開いてDとする
10回値にカウントしながら繰り返す
Dに「D:\temp\output\output[値を4桁に整えたもの].png」を画像として追加して対象とする
対象の大きさは、{300,300}
対象の元実体:ConvertToInlineShape()
繰り返し終わり
ワードを「[デスクトップ]テスト.docx」に保存する

画像の大きさを適宜調整することで1頁に熱型表1枚でレイアウトできます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?