はじめに
今回は、ブックにマクロが含まれているかを確認する方法を解説します。
マクロが含まれている場合は、保存形式を「マクロ有効ブック」として保存する必要があり、その判定に使用する場合が多いです。
この記事を読むメリット
- ブックにマクロが含まれているかを確認する方法が分かります。
- 判定時に注意すべきポイントが分かります。
- コピペで使える実践的なコードを掲載しています。
基本情報
HasVBProjectプロパティ
ブックにマクロが含まれているかを判断するには、WorkbookオブジェクトのHasVBProjectプロパティを使用します。
マクロが含まれている場合はTrue、含まれていない場合はFalseを返却します。
構文
WorkbookObject.HasVBProject
HasVBProjectは、Excel 2007から追加された為、Excel 2003以前のバージョンでは動作しません。
サンプルコード
マクロが含まれているかを確認する
サンプルコード
Public Sub checkIncludeMacro()
If ActiveWorkbook.HasVBProject Then
' マクロが含まれている場合
MsgBox ActiveWorkbook.Name & "にはマクロが含まれています", vbInformation
End If
End Sub
りゅう
上記サンプルではActive状態のブックを指定していますが、
狙ったブックを指定する場合は以下の記事が参考になります。
【Excel VBA】ブックの参照(Workbooks/ActiveWorkbook/ThisWorkbook)
ブックを参照する3つの方法について解説しています。基本的な構文から、エラーの回避方法、コピペで使える実践的なコードも紹介しています。
マクロが含まれている場合にマクロ有効ブックとして保存
サンプルコード
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
最後に
今回は、ブックにマクロが含まれているかを確認する方法をご紹介しました。
本記事が、皆さんのお力になれば幸いです!
コメント