Excelのシート CodeNameからNameを導き出す


 VBAでExcelのシート名を参照する際に、CodeNameからシート名を導き出す必要が生じました。

 ネットに当ってみたのですが、よい例がなく、自分でプロパティを探して表示させるようにしました。

 あまりWebには掲載されていないようなので、メモ替わりに掲載します。

 シートの名前を変更
 シートの名前を変えておいて、VBEからCodeNameの名前も変えます。
 CodeNameを参照

 シートの名前であるaaaaaを、Siitoだけを頼りに取得したい場合、ブック内の全シートをループして・・・という方法をすぐに思いつきますが、シート数が多い場合の処理時間が・・・・

 そこで下図のようなコードを書くと、aaaaa が取得できます。なぜか、いきなりNameプロパティを呼び出すと Siito を呼び出してしまうのに、Properties(“name”)にすると aaaaa を呼び出せるところが新味です。
 コード例

 Excel 2002、2003、2007、2010で動くことを確認しました。 

 なお、Excel2002以上では、VBProjectプロパティを呼び出す際に設定によっては「実行時エラー ‘1004’:プログラミングによる Visual Basic プロジェクトへのアクセスは信頼性に欠けます」というエラーが出ます。こちらについては、以下のリンクを参考にしてください。
マイクロソフトのサポートページ