Excelシートのオブジェクト名をVBAで変更する方法

こんにちは!大阪市を拠点に活動している『縁紡ぐ』の稲垣です。
SWELLを使ったホームページ制作や、Excel、ACCESS、RPAなどのシステム開発を行っています。
また、Excel、Word、Outlookの研修や、情報セキュリティ研修も行っています。身近なITの相談相手になりたいと思っています。
お気軽にお問い合わせください。
Excelシートのオブジェクト名をVBAで変更する方法
稲垣VBAでは、シートはオブジェクト名を使って処理することがよくあります。
今回は、、そのオブジェクト名をVBAで変更する方法を紹介しますね!
『シート名』の表示名を変更する場合は、こちらの記事をお読みください。


シートプロパティのオブジェクトとは
シートプロパティのオブジェクト名については、こちらの記事で解説をしています。




シートプロパティのオブジェクト名を変更するコード
このオブジェクト名を変更するコードは、次のようになります。実行するとエラーになります。
コードではなく、設定を変更する必要がありますので、後ほど設定について紹介します
シートの順番で指定する場合
Sub SheetObjectNameChange()
'Sheets(3)は、シートのいくつ目かで指定しています。今回は3つ目のSheet3を指定しています
ThisWorkbook.VBProject.VBComponents(Sheets(3).CodeName).Name = "test"
End Subコードにメモ書きで書いていますが、Sheets(3)で3つ目のシート、今回であれば『Sheet3』を指定しています。
オブジェクト名は、
ThisWorkbook.VBProject.VBComponents(シートの指定.CodeName).Name
で変更ができます。
シートの名前で指定する方法
次は、シート名っていえばみんなが想像するシートのNameで指定する方法です。


Nameを指定して変更するコードは、こちらです。
Sub SheetObjectNameChange()
ThisWorkbook.VBProject.VBComponents(Sheets("NewSheetName").CodeName).Name = "test"
End Subオブジェクト名をVBAで変更するための設定変更
初期設定のまま実行すると、実行時エラー1004発生します。


設定変更をすることで実行できるようになります。












実行してみる
ステップ実行をしてみます。
正しく処理おこなわれると、左の『Sheet3』が『test』に変更されます。


実行後


まとめ
今回は、シートのオブジェクト名を変更する方法をご紹介しました。オブジェクト名を使ってコードを書くと、シート名をユーザーが勝手に変えても、不具合を起こさずに使うことができます。ぜひ、オブジェクト名を使ってコードを書いていみてください。


稲垣
- Excel、ACCESSでのシステム開発が得意
- ITスキルを共有し実践的に学びながら成長する人を見るのが幸せ
- 自家焙煎するほどのコーヒー好き
- 使用言語 VBA、Python、Javascript、Java、HTML、CSS etc.
- 保有資格 Kintoneアソシエイト、日商簿記検定2級、マンション管理士、管理業務主任者、情報セキュリティマネジメント、ExcelVBA etc.
- 業務フロー図の作成や業務時間分析を通して、効率化ポイントを探る人
- お客様にとって本当に良いことかを第一に考える人

コメント