ワークシートの特定にはCodeNameを使え|エクセルVBA
ワークシートに CodeName を設定すればいろいろ捗る
まずは、CodeName の設定方法から。
例えば「メイン」と名前を付けたワークシートをActiveにした状態で、VBEのプロパティウィンドウの「(オブジェクト名)」を見ると、デフォルトでは Sheet1 などが入っています。
これが CodeName と言われるものです。
この CodeName を「wsMain」としてやれば、VBAのコード上で「wsMain」がそのシートを示すことになります。
よって、次の2つは同じ動作をします。
Sub サンプル1() wsMain.Activate End Sub
Sub サンプル2() Worksheets("メイン").Activate End Sub
CodeName を使うメリットはシート名の変更の影響を受けない点です。
例えば、
Worksheets("メイン").Activate
を使っていると、シート名の変更に応じて書き換えの必要が出てきます。
シート名を一度命名して、以降一切変更することがなければ、それでも構わないのですが、いろいろと作りこんでいくうちに、シート名を変えたくなることなんてよくあること。
シート名を変更する都度、VBAのコードを見なおしたり、置換を使ってシート名を変更したりするのって、案外気を使うものですよね。
なので、最初から CodeName を使うのがオススメです。
コードを書くためにキーを打つ量を考えてみても、
Worksheets("メイン").Activate
とするよりも
wsMain.Activate
とした方が、打ち込む量は断然少なくなりますよね。