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 プロジェクトへのアクセスは信頼性に欠けます」というエラーが出ます。こちらについては、以下のリンクを参考にしてください。
マイクロソフトのサポートページ


カテゴリ: Excel.
最終更新日: 6月 14, 2014

2 thoughts on “Excelのシート CodeNameからNameを導き出す

  1. H.Horikoshi

    Webを探しまわってようやくここに辿りつきました。
    この情報は書いてあるところが少ないです。
    参考になりました。
     

    1. 長井祥和 Post author

      Horikoshiさま

      こちらをご覧頂きましてありがとうございます。

      ご参考にして頂けたのであれば幸いです。掲載して以来、弊社の案件では活用例がなく、
      やはりレアケースだったのかな、と思っています。

      これからも他の技術情報に見当たらなさそうな情報がありましたら載せていくように
      しますので、よろしくお願いいたします。

コメントを残して頂けると嬉しいです