【VBA】Word文書に画像を挿入するマクロの解説

VBA

このVBAマクロは、ユーザーが選択した画像をMicrosoft Wordの指定ページに一括挿入するためのものです。特に、文書の2ページ目に画像を挿入する際に役立つように設計されていますが、コードを少し変更すれば、任意のページに画像を挿入することも可能です。

コードの詳細解説

1. ファイルダイアログの設定と表示

Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
    .Title = "Select Images"
    .Filters.Add "Images", "*.gif; *.jpg; *.jpeg; *.bmp; *.png", 1
    .AllowMultiSelect = True
    .InitialFileName = ""
    fileChosen = .Show
End With
  • FileDialog オブジェクトを使用して、画像ファイルを選択するダイアログを表示します。
  • msoFileDialogFilePicker は、ユーザーがファイルを選択するためのダイアログボックスを表示するオプションです。
  • AllowMultiSelect = True に設定することで、複数のファイルを選択可能にしています。
  • fileChosen は、ユーザーがファイルを選択したかどうかを確認するための変数です。

2. ファイルが選択されていない場合の処理

If fileChosen <> -1 Then
    Exit Sub
End If
  • fileChosen-1 でない場合、ユーザーがファイル選択をキャンセルしたとみなし、マクロを終了します。

3. 2ページ目の位置を特定

If ActiveDocument.ComputeStatistics(wdStatisticPages) < 2 Then
    ActiveDocument.Content.InsertAfter vbCr & vbCr
End If

Set rng = ActiveDocument.GoTo(What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=2)
rng.Collapse Direction:=wdCollapseStart
  • ComputeStatistics(wdStatisticPages) を使用して、文書のページ数を取得します。
  • 文書が1ページしかない場合、改行を挿入して2ページ目を作成します。
  • GoTo メソッドを使用して、2ページ目の開始位置にカーソルを移動させます。

4. 画像を挿入

For i = 1 To fd.SelectedItems.Count
    Set img = ActiveDocument.InlineShapes.AddPicture(FileName:=fd.SelectedItems(i), LinkToFile:=False, SaveWithDocument:=True, Range:=rng)
    img.Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
    rng.Collapse Direction:=wdCollapseEnd
Next i
  • For ループを使用して、選択されたすべての画像を2ページ目に挿入します。
  • AddPicture メソッドで、画像を指定した範囲 (rng) に挿入します。
  • 画像は中央揃え (wdAlignParagraphCenter) に設定されます。
  • 画像を挿入した後、カーソルを次の位置に移動 (Collapse Direction:=wdCollapseEnd) させて、次の画像がその後に続けて挿入されるようにします。

カスタマイズの提案

このマクロをカスタマイズすることで、さらに多様なニーズに対応できます。

  1. 任意のページに画像を挿入:
  • Count:=2 の部分をユーザー入力 (InputBox) に変更して、任意のページに画像を挿入できるようにする。
  1. 画像のサイズ調整:
  • 画像の挿入後に img.Widthimg.Height を調整して、特定のサイズにリサイズする。
  1. 画像の順序変更:
  • 画像を逆順で挿入するには、For ループを For i = fd.SelectedItems.Count To 1 Step -1 のように変更します。

まとめ

このVBAマクロは、ユーザーが選択した複数の画像をWord文書の指定ページに効率的に挿入するために非常に便利です。特にレポートやプレゼンテーション用の文書で、複数の画像を一括で管理したい場合に役立ちます。少しのカスタマイズで、さらに柔軟な操作が可能になりますので、ぜひご自身のプロジェクトで活用してみてください。


Wordで使うことは少ないけどできるの覚えとくと意外と使えるかも

ではまたー

コメント

タイトルとURLをコピーしました