入力データの行数を取得するテクニック」では、これまで作成してきた「ブックを作成するマクロ」について、「シート枚数とシートの名前の設定方法」を改善しながら、データが入力されている行数を取得するテクニックを紹介しました。今回は、2つ目の改善点「シートの名前データを取得するタイミング」を修正しながら、ちょっぴり高度なVBAのテクニックを紹介します。

シートの名前に設定するデータを取得するタイミング


現在作成しているマクロでは、シート名に設定したいデータを「実際にシート名を設定するタイミング」で取得しています。つまり、「新規ブックを作成したあと」のタイミングになっています。

シート名に設定したいデータは、マクロのブックに入力されているので、現状では、「新規ブック」がアクティブな状態で「マクロのブック」のセルを参照しています。このように、アクティブでないブック上のセルを参照する場合は、「どのブック上なのか」を指定する必要があるため、マクロのステートメントが冗長になっています。


一方、ブック名のデータは、新規ブックを作成する前、つまり「マクロのブック」がアクティブな状態でセルを参照し、セルのデータを変数に格納してから新規ブックで使用しているため、マクロのステートメントがスッキリしています。また、アクティブなブックのアクティブなワークシート上のセルなので、ワークシート名の記述も不要です。


そこで、シート名についても、マクロのブックがアクティブな状態で取得し、変数に格納してから使用するように修正します。

ところが、ブック名のデータ数はひとつですが、シート名の数は複数です。したがって、ブック名のように変数にデータを格納するわけにはいきません。そこで登場するのが「配列変数」です。

>早速、配列変数について学習しましょう。次ページへどうぞ!