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

配列変数を使用したデータ取得テクニック(4ページ目)

「入力データの行数を取得するテクニック」に引き続き、作成してきたマクロを改善しながら、より高度なVBAテクニックを紹介します。今回は、配列変数を使用したデータ取得テクニックの紹介です。

緑川 吉行

執筆者:緑川 吉行

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


シートの名前データを動的配列変数に格納しよう


まず、動的配列変数を宣言します。ここでは、文字列型のデータであるワークシートの名前を格納するので、「Dim SheetName() As String」と記述します。


入力データの行数を取得するテクニック」したとおり、シートの数は「SheetCount」に格納されているので、これとReDimステートメントを使用して要素数を設定します。このとき、配列変数のインデックス番号は「0」から始まるので、「1」を引いておきます。


そして、マクロのブックがアクティブなうちに、シートの名前データを動的配列変数SheetNameに格納します。繰り返し処理になるので、For...Nextステートメントを使用し、ループカウンタ「i」を上手に活用します。インデックス番号は「0」から始まるので、インデックス番号とCellsプロパティの行位置の数値のズレに注意してください。


シート名を設定しよう


あとは、動的配列変数に格納したデータをシート名に設定するだけです。冗長だったステートメントを下図のように書き換えます。ここでも、インデックス番号が「0」から始まることによる数値のズレに注意してください。


書き換えたマクロを読み直してみると、ステートメントがスッキリしたことが実感できるハズです。また、おおまかにですが、「データを取得」→「新規ブック作成」→「取得したデータを設定」といったようにマクロの流れもスッキリしました。


これで、新規ブックを作成する前にシート名を取得する仕様に修正できました。もちろん、これはひとつの修正例なので、考え方によっては違う修正方法もあります。続く「画面更新を抑止してスピードを上げよう」では、改善点3について解説します。
【編集部おすすめの購入サイト】
楽天市場で Excel 関連の商品を見るAmazon で Excel 関連の商品を見る
  • 前のページへ
  • 1
  • 2
  • 3
  • 4
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

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