ワークシート
あるシートを変数などで持っているときに、隣(前後)のシートを取得する方法を紹介します。Worksheetオブジェクトには、これを一発で取得するプロパティが用意されており「Next/Previousプロパティ」を使うことで、前後のシートを取得することができます。
指定のシートが何番目のシートか調べる方法を解説します。例えばActiveSheetが何番目のシートかを調べるには、ActiveSheet.Indexを取得します。このIndexで求めた数値は、グラフシートなどがなければWorksheets(x)のxに入れて使うことができます。
ワークシートを新しいブックにコピー/移動する方法を紹介します。この方法はとても簡単で、Worksheets("○○").Copy でOKです。移動する場合は、Worksheets("○○").Move になります。
ワークシートを別のブックにコピー/移動する方法を紹介します。コピー・移動する際は、 Worksheetの、Copy/Moveメソッドを使用し、これらのメソッドの引数「After/Before」には別のブックのシートも特に制約なく指定できます。
ワークシートを移動する「Moveメソッド」の使い方を解説します。[移動するシート].Move Before:=[ここで指定したシートの1つ前に挿入]、または[移動するシート].Move After:=[ここで指定したシートの1つ後ろに挿入]というコードを実行します。
ワークシートをコピーする「Copyメソッド」の使い方を解説します。[コピーするシート].Copy Before:=[ここで指定したシートの1つ前に挿入]、または[コピーするシート].Copy After:=[ここで指定したシートの1つ後ろに挿入]というコードを実行します。
セルの値からシート名を取得したくなることがあります。Worksheets(Range("A1"))と書きたくなるのですが、これではエラーになってしまいます。この解決策は非常に簡単で、Worksheets(Range("A1").Value)と、Valueプロパティ明示すればOKです。
今回は日本語変数に関するお話です。単刀直入に、シート名が日本語だった場合に、その変数名をわざわざ英訳してはいけません。VBAではワークシート名もソースコードの一部です。同じオブジェクトの変数名は、すべてのコードで同じ単語を当てましょう。
ある名前のワークシートが、指定したブックに存在するかを調べる関数を紹介します。Worksheets(シート名)の「インデックスが有効範囲にありません」エラーを回避するのに使います。教本のような「コレクションに対するFor Each」で処理します。