和風スパゲティのレシピ

日本語でコーディングするExcelVBA

文字列からシート名に使えない文字を消去する

ワークシート名には文字数と使用文字に条件があり、この条件に違反するとエラーが発生します。文字数の方は簡単で、Left関数で31文字以降をカットしてしまえばOKなのですが、禁則文字の方はReplace関数で該当の文字を1個ずつ消してあげる必要があります。

ワークシートを指定する方法7選

「ワークシートの指定方法」はいろいろなやり方があり、どれがいいというわけではなく一長一短があります。このいろいろなワークシートの指定方法を、「基本的だけど効果の高い方法」に厳選して解説していきますので、是非習得していってください。

偶数シートなど飛び飛びのシートをループする

偶数番のシートや、3つおきのシートなど、規則性がある飛び飛びのシートをループ処理するコードを紹介します。Forステートメントの「Step」を使うのが最も基本的で、For シート番号 = 2 To 6 Step 2 という記述で2,4,6番目のシートを処理できます。

隣のシート(前のシートや次のシート)を取得する

あるシートを変数などで持っているときに、隣(前後)のシートを取得する方法を紹介します。Worksheetオブジェクトには、これを一発で取得するプロパティが用意されており「Next/Previousプロパティ」を使うことで、前後のシートを取得することができます。

指定のシートが何番目のシートか調べる

指定のシートが何番目のシートか調べる方法を解説します。例えばActiveSheetが何番目のシートかを調べるには、ActiveSheet.Indexを取得します。このIndexで求めた数値は、グラフシートなどがなければWorksheets(x)のxに入れて使うことができます。

シートを新規ブックにコピー/移動する

ワークシートを新しいブックにコピー/移動する方法を紹介します。この方法はとても簡単で、Worksheets("○○").Copy でOKです。移動する場合は、Worksheets("○○").Move になります。

シートを別のブック(の末尾)にコピー/移動する

ワークシートを別のブックにコピー/移動する方法を紹介します。コピー・移動する際は、 Worksheetの、Copy/Moveメソッドを使用し、これらのメソッドの引数「After/Before」には別のブックのシートも特に制約なく指定できます。