Excel VBAの使い方/マクロ・VBA

入力データの行数を取得するテクニック

「エクセルでシート作成するマクロ(For文の活用)」で完成させたマクロを改善しながら、より高度なテクニックを紹介していきます。今回は、入力データの行数を取得するテクニックです。

緑川 吉行

執筆者:緑川 吉行

エクセル(Excel)の使い方ガイド

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

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

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

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

修正後


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

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


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

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

必要なテクニック

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

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

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

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます