下記の4つの記事で、シート名を指定して作成したワークシートを含むブックを作成するマクロを作成してきました。
●「ブックを作成するマクロを作成しよう
●「エクセルでシート作成するマクロ(ワークシート追加)
●「エクセルでシート作成するマクロ(If文の活用)
●「エクセルでシート作成するマクロ(For文の活用)
最後の記事で、期待通りに動作する形になりましたが、解説の流れなどを考慮したマクロになっている都合で、まだ課題が残っていました。そこで、今回から3回にわたってこのマクロをブラッシュアップする方法を解説しながら、重要なマクロ作成テクニックを紹介します。

まず、これまで作成してきたマクロの改善点を整理してみます。

【改善点1】シート枚数とシートの名前の設定方法を改善したい

現状では、シートの枚数とシートの名前を別々に設定しています。これでは「指定したシートの枚数」と「指定したシートの名前の数」が合わない場合があるかもしれません。これらの数が合わないとエラーが発生する可能性があります。そこで、シートの枚数を指定しないで「シートの名前」だけを指定する形に修正します。シートの枚数は、指定された「シートの名前の数」となります。
修正前

修正後


【改善点2】シートの名前データを取得するタイミングを改善したい

現状、シートの名前データを取得するタイミングは「新規ブックを作成したあと」になっています。この場合、新規ブックがアクティブな状態で、マクロが作成されているブック上のセルを参照する必要があるため、マクロのステートメントが冗長になっています。そこで、シートの名前データを取得するタイミングを「新規ブックが作成される前」にします。
※ここでは、「作成するブック名を取得するタイミングとシートの名前データを取得するタイミングを合わせること」、「オブジェクトを参照する回数をできるだけ減らすこと」を考えて、上記のような改善を考えています。


【改善点3】画面がちらつく状況を改善したい

現状では、ブックが作成されたり、ワークシートが作成されたりすると、その処理に合わせて画面表示が更新されるため、画面がちらつきます。これでは、追加するワークシートが多い場合、処理速度が遅くなってしまいます。そこで、画面が更新されるのを抑止して、画面がちらつく状況を改善します。

必要なテクニック

この3つについてマクロを改善していくためには、次の3つのテクニックが必要です。
■データが入力されている行数を取得するテクニック
■動的配列変数を使ったデータ取得テクニック
■画面更新を抑止するテクニック

今回は、【改善点1】を解説しながら「データが入力されている行数を取得するテクニック」を紹介します。

>それでは、データが入力されている行数を取得するテクニックの解説に入ります。次ページへどうぞ!