【VBA】シートのオブジェクト名をマクロで変更する


以前シートのオブジェクト名を変更してから扱うというブログを書いたのですが(【VBA】シートをオブジェクト名で指定する
先日、コメントでシートのオブジェクト名を手動ではなくコードで設定する方法はないかという話題がでまして、@radames1000 さんが教えてくれた方法を改めて記述しておきます。

セキュリティセンターの設定

まずは、以下のチェックを入れておきます。
Excelのオプション

セキュリティセンター

マクロの設定

開発者向けのマクロ設定

VBAプロジェクトオブジェクトモデルへのアクセスを信頼する にチェック

コード

Sub SheetObjectNameChange()
    ThisWorkbook.VBProject.VBComponents(Sheets(1).CodeName).Name = "test"
End Sub

実行結果


変更できました!

マクロで新しくシートを追加してさらにそのオブジェクト名を変更したいときなどに使いたいかも。

いままでVBAプロジェクトオブジェクトモデルへのアクセスを信頼するってなんのこっちゃって思ってました!
@radames1000 さんありがとうございました!