5-5.マクロブックの保存

今回は、マクロブックを保存する際に便利なHasVBProjectプロパティについて説明します。

マクロブックの保存

マクロを作成したブックは、xlsx形式ではなく、xlsm形式で保存する必要があります。
仮にマクロを作成したブックを、xlsx形式で保存しようとすると、警告文が表示されてしまいます。

これは、VBAでSaveメソッドやSaveAsメソッドなどで保存する場合も同様ですが、プログラムの処理中に、いちいち警告文が表示されるのも面倒です。

HasVBProjectプロパティを使用すると、ブックにマクロが作成されているか(VBAプロジェクトがあるか)を確認できます。

マクロが作成されている場合はxlsm形式で保存、作成されていない場合はxlsx形式で保存するといた分岐処理をすることで、警告文を表示されることなくプログラムを実行することが可能となります。

HasVBProjectプロパティ

○構文
Workbook.HasVBProject

○処理
オブジェクトに指定したブックでマクロが作成されている場合、Trueを返します。
               マクロが作成されていない場合、Falseを返します。

サンプルコード

HasVBProjectを使用して、マクロの有無で、保存する形式を変更するプログラムが以下になります。
処理の分岐を行うif else文を使用しています。

Sub マクロブックの保存()

    Dim File_Name As String
    File_Name = "C:\Users\ブック"
    
    If ActiveWorkbook.HasVBProject = True Then
        ActiveWorkbook.SaveAs File_Name & ".xlsm"
    Else
        ActiveWorkbook.SaveAs File_Name & ".xlsx"
    End If
    
End Sub

コメント