パソコン悪戦苦闘記録

Wordマクロの関数などを解説

 ワープロソフトWordの文書内データを、次から次へと入れ替えるVBAマクロのコードを、昨日のブログに書きました。「差し込み印刷」を、マクロで実行するものです。
 文書内に、枠線透明の罫線(表)を配置しておき、その中に、データを順次挿入していくマクロです。
 挿入するデータの数がどんなに多くても、マクロが自動で処理してくれます。

 詳しくは、
  昨日の記事をご覧ください。

 VBAマクロのコードは、次のとおりです。

Sub Macro1()
Dim i As Integer
For i = 1 To 9
With Documents("Hoge.docx").Paragraphs(i).Range
  ThisDocument.Tables(1).Range.Text = _
    Left(.Text, Len(.Text) - 1)
  ThisDocument.PrintOut
End With
Next i
End Sub


 Excelマクロを扱える方なら、このコードの中味は理解できるはずです。Wordマクロも、Excelマクロと大きな違いはありません。WordもExcelも、どちらのマクロも、同じVBAで記述するからコードの中味はほぼ共通です。




 
 ここで、Wordマクロの普及のためにも、上記VBAコードの中味を少しだけ、私流に解説しておきます。

【1】 Documents("Hoge.docx")
 これは、「Hoge.docx」というファイル名のWord文書のことです。
 Documents は、Word で現在開いているすべての Document オブジェクトのコレクションです。Documents("Hoge.docx") と記述することによって、現在開いているWord文書の中で、「Hoge.docx」という特定の文書を指し示しています。
 このマクロの使用に当たっては、「Hoge.docx」というファイルを開いておく必要があります。

【2】 Paragraphs(i)
 Paragraphs は、段落 Paragraph オブジェクトのコレクションです。Paragraphs(i)とすることで、コレクション(複数の段落)の中から、単体のParagraph(段落)オブジェクトを取得します。「i」は、整数型の変数で、この変数には、「1~9」の整数が入ります。
 ですから、これによって、1番目の段落から9番目の段落が取得されます。

【3】 Left
 「Left」は、文字列の左から指定された文字数分の文字列を返す関数です。
 「Left(文字列式,文字数)」 という構文になります。文字列式には、取り出し元となる文字列を指定し、文字数には、取り出す文字列の文字数を指定します。

【4】 Len
 「Len」は、指定した文字列の長さ(文字数)を返す関数です。
 
【5】 Left(.Text, Len(.Text) - 1)
 これは、Left 関数を使うことによって、各段落の文字列から、最後尾の1文字だけを取り除いた文字列が返されています。
 各段落の「最後尾の1文字」とは、段落記号(改行マーク)のことです。文書内にデータを挿入するに当たって、段落記号は不要なので、取り除いているわけです。この記述は、Wordマクロにおいては、よくお目にかかる定番のコードです。

 
 不十分なところもあるかもしれませんが、解説は、以上となります。
 Excelマクロは非常に普及していて、多く利用されているのに、Wordマクロの普及度は芳しくありません。Excelマクロとほぼ共通のコードなので、ぜひ、Wordマクロも使ってみてください。




それでは、また次の記事で
goosyun
名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「VBAプログラミング・マクロ」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事