F0000007_シート内の指定した表を配列で取得する

シート内の指定した表を配列で取得する 関数リファレンス

この関数について

ExcelVBA(マクロ)を初めてのプログラム言語に選んだ場合、多くの方がまずはブックを開く、シート名称を変更する、セルに数式を入力するといったExcelの基本操作を自動化することから覚えると思います。しかし、データ処理をすべてセル上で実施していると大量の顧客データや請求データを扱う場合、実行速度にストレスを感じるようになります。ExcelVBAでは、高級なプログラミング言語と同様に配列を使用することができ、いったんデータはすべて配列に格納し、計算・加工の工程は配列上で行い、結果をシートに書き出すという処理の流れとするだけで驚くほど実行速度が改善されます。前置きが長くなりましたが、シート上にデータベースよろしく配置されたデータを配列へ格納する関数を作成しました。長年のカスタマイズを経て、なるべく汎用的に使えるようにできたつもりです。

関数コピペ ~コードをクリックするだけでコピー完了!~



使い方 ①引数

■第1引数:target_ws
 まずデータが格納されたワークシートを指定します。ExcelVBAの操作では、セルのみを指定した操作は、意図したシートで処理されない可能性があります。ユーザーはなかなかあなたの思い通りには動いてくれません。ワークシートは必ず指定します。

■第2引数:header_row
 データのヘッダーを行の番号で指定します。

■第3引数:header_inport
 Boolean型で指定します。
 True:ヘッダーも配列に取り込みます。False:ヘッダーを配列に取り込みません。

■第4引数:first_col
 データが格納された先頭列を列のアルファベット文字列で指定します。この指定があることで表の任意の列からデータを取得することができます。例)”A”

■第5引数:primary_col
 データに空白がない列を列のアルファベット文字列で指定します。指定した列に格納されたデータ数を数えて取得する行数とみなします。

■第6引数:end_col
 データが格納された最終列を列のアルファベット文字列で指定します。この指定があることで表の任意の列までのデータを取得することが可能です。

■第7引数:var_type_code
 返値の配列の型を指定します。Variant、String、Long、Double、Dateを指定可能です。ExcelVBAの定数を使って指定します。
 例)vbVariant vbString vbLong vbDouble vbDate

◆第8引数:base_index
 配列の先頭の添え字(Base)を数値で指定できます。

使い方 ②戻り値

指定した条件でシートからデータを取得・配列に格納し、返します。配列の型は第7引数で指定したものが返ります。取得するデータがない場合、指定した型の空の配列を返すため、型エラーになりません。

サンプルコード(クリックでコピー)






【結果】表のデータを配列に格納できました

サンプルコードの出力結果は以下のようになります。このサンプルでは事前にB1:F3にデータが入った状態で実行しています。

関数リファレンスにはコピペで使用可能な便利関数を多数掲載!

関数リファレンスでは私が開発の中で必要になったコード部品を汎用化・関数化して公開しています。この記事で紹介した関数以外にもコピペで利用できる関数を多数用意しています。検索窓から必要な機能を検索してみましょう!解説記事も続々公開中。

Comment