【Excel VBA】ブックにマクロが含まれているかを確認(HasVBProject)

はじめに

今回は、ブックにマクロが含まれているかを確認する方法を解説します。
マクロが含まれている場合は、保存形式を「マクロ有効ブック」として保存する必要があり、その判定に使用する場合が多いです。

この記事を読むメリット
  • ブックにマクロが含まれているかを確認する方法が分かります。
  • 判定時に注意すべきポイントが分かります。
  • コピペで使える実践的なコードを掲載しています。

基本情報

HasVBProjectプロパティ

ブックにマクロが含まれているかを判断するには、WorkbookオブジェクトのHasVBProjectプロパティを使用します。
マクロが含まれている場合はTrue、含まれていない場合はFalseを返却します。

構文

WorkbookObject.HasVBProject

新規ブック(保存されていないブック)であっても、マクロが含まれている場合は Trueが返却されます。

HasVBProjectは、Excel 2007から追加された為、Excel 2003以前のバージョンでは動作しません。

サンプルコード

マクロが含まれているかを確認する

サンプルコード
Public Sub checkIncludeMacro()

    If ActiveWorkbook.HasVBProject Then

        ' マクロが含まれている場合

        MsgBox ActiveWorkbook.Name & "にはマクロが含まれています", vbInformation
    End If
End Sub
りゅう

上記サンプルではActive状態のブックを指定していますが、
狙ったブックを指定する場合は以下の記事が参考になります。

マクロが含まれている場合にマクロ有効ブックとして保存

サンプルコード
Public Sub checkIncludeMacro()
    Dim saveFilePath As String  ' 保存ファイルパス
    
    ' 保存ファイルパスを指定
    saveFilePath = "C:\vba-hack\TestMacroBook"

    If ActiveWorkbook.HasVBProject Then

        ' マクロが含まれている場合

        ' マクロ有効ブックとして保存
        SaveAs saveFilePath, FileFormat:=xlOpenXMLWorkbookMacroEnabled
    Else

        ' マクロが含まれていない場合

        ' 通常ブックとして保存
        SaveAs saveFilePath, FileFormat:=xlOpenXMLWorkbook
    End If
End Sub

最後に

今回は、ブックにマクロが含まれているかを確認する方法をご紹介しました。

本記事が、皆さんのお力になれば幸いです!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

大手外資系コンサルティングファーム勤務。ExcelVBA歴は8年。金融関係のプロジェクトにて約100万レコードを処理するマクロの開発実績あり。ExcelVBAの基礎・応用情報を発信中。

コメント

コメントする

CAPTCHA