【入門編】【初心者向け】マクロ一発で複数ページを一括作成し、命名規則に従って自動リネームする方法 – Visio VBA解析バイブル

スポンサーリンク

Visio VBAの深淵へ:マクロ一発で「ページ自動生成」をマスターする極意

こんにちは。Visioのオートメーションの世界へようこそ。
これまで手作業で「ページを追加」し、「名前をダブルクリックして入力」していた数分間の苦行。今日で終わりにしましょう。

VisioのVBAは、単なる「作業の記録」ではありません。「Visioという巨大なオブジェクトツリーをあなたの意のままに操るコマンド」です。今回は、その第一歩として、プロジェクト管理番号に基づいた「ページ一括生成・リネーム」の自動化を伝授します。

—

1. なぜ「手作業」をやめるべきなのか?

自動化の最大の恩恵は「速度」ではありません。「一貫性」です。
手作業では、どうしても「ページ名のタイポ(入力ミス)」や「設定の食い違い」が生まれます。人間は繰り返しの作業に弱い生き物ですが、プログラムは疲れることなく、100回でも1000回でも同じ品質でタスクを完了させます。

このコードを覚えるだけで、あなたは「作業者」から「システム設計者」への第一歩を踏み出したことになります。

—

2. ページ自動生成のVBAコード

以下のコードをVBAエディタ(`Alt + F11` で開き、`挿入 > 標準モジュール`)に貼り付けてください。

Option Explicit ‘ 宣言を強制する:これだけでバグは激減します

Sub CreateProjectPages()
Dim vsoPage As Visio.Page
Dim i As Integer
Dim strPrefix As String

‘ プロジェクト管理番号のプレフィックスを設定
strPrefix = “PJ-2023-”

‘ 5ページ分を自動生成するループ処理
For i = 1 To 5
‘ ページを追加(ページオブジェクトを生成)
Set vsoPage = ActiveDocument.Pages.Add

‘ 命名規則に従ってリネーム
‘ Format関数で番号を01, 02と揃えるのがプロの流儀です
vsoPage.Name = strPrefix & Format(i, “00”)

‘ ページ設定の自動化(例:A4横向きに固定)
‘ Visioの単位はインチなので注意が必要ですが、ここでは基本設定を適用
vsoPage.PageSheet.Cells(“PageWidth”).Formula = “297mm”
vsoPage.PageSheet.Cells(“PageHeight”).Formula = “210mm”
Next i

MsgBox “ページ生成が完了しました。”, vbInformation
End Sub

—

3. コードの「魂」を解説する

初心者の方が陥りやすいポイントを、エンジニアの視点で紐解きます。

① `Option Explicit` はお守りです

これがないコードは、地図を持たずに航海に出るようなものです。変数名の打ち間違いをVBAが厳しく指摘してくれるようになります。まずはここから始めましょう。

② `Set` を忘れないでください

Visioのオブジェクト(ページや図形)を扱うとき、`=` だけでは不十分な場合があります。オブジェクトを代入するときは必ず `Set` を頭につける。これがVisio VBAの鉄則です。

③ なぜ「Format関数」を使うのか?

`”PJ-2023-1″` と `”PJ-2023-10″` が混在すると、フォルダやファイル一覧で見るときに順序が崩れます。`Format(i, “00”)` を使うことで、`01, 02…10` と綺麗に整列させることができます。この「細かい気配り」が、保守性の高いコードを作るコツです。

—

4. 陥りやすいエラーとその対策

コードを動かすと、以下のような壁にぶつかるかもしれません。

  • 「名前が重複しています」というエラー
  • 原因: すでに同じ名前のページが存在しています。
  • 対策: 実行前に既存のページをクリアする処理を追加するか、`On Error Resume Next` でエラーを無視する(ただし、これは慎重に使うこと)などの工夫が必要です。
  • 「ページサイズがミリ単位で指定できない」
  • 原因: Visio内部では「インチ」が基準です。
  • 対策: 今回のコードのように `297mm` と書けばVisioが自動で変換してくれます。文字列で渡すのがポイントです。

—

最後に:自動化の先にあるもの

今回紹介したコードは、あくまで基礎の基礎です。
ここから、「Excelのリストを読み込んでページ名にする」「ページ背景を自動適用する」といった応用へと進化させることができます。

Visio VBAは、あなたの設計業務における「魔法の杖」です。一度書いたコードは、あなたの分身として永遠に働き続けます。

まずはこのコードを動かしてみてください。画面上でページが次々と生成される様子を見たとき、きっと「あ、これでもう手作業に戻れないな」と感じるはずです。

その感覚こそが、世界最高峰の自動化エンジニアへの入り口です。応援しています!

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