- Coding Methodology
- 第106回 Excel VBAを使った高速指示書作成術
第106回 Excel VBAを使った高速指示書作成術
サイトリニューアルをする際には、ページ毎に旧サイトのページをどのように移行するのかなど、必要事項をまとめた指示書を作成する必要があります。
今回はExcel VBAを用いて指示書を高速で複製する方法を紹介します。
必要なものを準備する

図1:指示書完成図(テンプレート)
ページIDの名前のタブに現行サイトのURLが記載されたシートを完成形とします。
元となるシート(図1)を1つ作成し、シート名に「Template」、ファイル名は「指示書.xlsx」として保存します。
さらにページ毎に必要な情報(ページIDとURL)は別のエクセルにまとめて「サイトマップ.xlsx」として保存します(図2)。
この2ファイルをエクセルで開いた状態にし、「サイトマップ.xlsx」を選択した状態で作業をすすめます。

図2:サイトマップ
処理の登録と実行
エクセルメニューバーの[開発]タブ内にある、[VisualBasic]をクリックします。
[開発]タブが表示されていない場合は、[ファイル]、[オプション]、[リボンのユーザー設定]の順にクリックし、[メインタブ]の[開発]チェックボックスをオンにします。

図3:VBAコード
[挿入]>[標準モジュール]を選択して、コード入力画面を起動し、図3のコードを入力します。各コードの処理については下記のとおりです。
①サイトマップからIDを取得
(今回は「C列」の6行目〜20行目にIDを記載)
②指示書テンプレートをコピー、取得したIDをタブに設定。
(「Cells(i, 3)」は「サイトマップ.xlsx」i番目のC列を表す)
③URLを取得し、指定のセル(今回は「B5:I5」)に入力。
(「Cells(i, 2)」は「サイトマップ.xlsx」i番目のB列を表す)
④6行目から20行目まで処理を繰り返す。

図4:マクロの記録
[実行]>[Sub/ユーザーフォームの実行]を選択すると、コードの処理を開始します。「指示書.xlsx」にサイトマップの6行目〜20行目のID名でシートが複製され、それぞれの現行URLが指定のセルに入力されます。
[VisualBasic]で[ファイル]>[上書き保存]しておけば、保存したモジュールをダブルクリックすることで、同じ処理がいつでも実行出来ます。
具体的にどのようなコードを書けばよいか分からない場合は、「マクロの記録(図4)」をクリックしてから、手動で保存したいアクションを行います。アクションが終了したら同じ場所にある「記録の終了」をクリックすると、保存したアクションがコードとして保存されています。
処理の組み合わせ次第で、例えば「アクティブウィンドウのキャプチャ画像を保存して指示書に挿入する」「量産した指示書を制作後、全て自動で印刷する」など、様々な事が自動で行えるようになります。
皆さんも是非、ExcelVBAを活用して書類作成の効率化を図ってみてください。