ついて情報発信しています。VBAプログラムは本当の初心者から他のアプリケーションを呼び出して使う上級者的な使い方まで幅広いレベルで解説していきます。3静的配列の初期化と実務的なサンプルVBAの勉強このブログの記事一覧にもどるTweetVBAの静的配列の初期化とその具体実務的なサンプルを見て行きます。配列が初期化できると実務的に便利なことが多いです。難しくないので、順番に見て行きましょう。実務的なサンプルを作成する静的配列の初期化と実務的なサンプルまとめ静的配列の初期化と実務的なサンプルを解説する配列の初期状態とはまず始めに、配列の初期状態について確認しておきます。Subもっとも単純な例で確認します。F8で一行ずつ実行してローカルウィンドウを確認します。””(長さ0の文字列)でも数字の0でもNothingでもありません。Emptyという「空の状態」という状態を表す特殊な値が入っていることが分かりました。静的配列の初期化を行う配列を宣言したばかりの状態では各要素はEmpty(空の状態)となっていることが分かりました。矛盾している様に思うかもしれませんが、各要素にEmpty(空の状態)が格納されている、と考えると良いでしょう。静的配列の各要素を初期化する初期状態でEmptyが格納されていると言うことは、逆にEmptyを格納すれば初期化できることになります。静的配列をループで初期化する静的配列は同じグループの複数パラメータが格納されているのに適した変数の型です。そのため、配列を初期化したいときは、どれかの要素を一つだけ初期化するというより、全部初期化したい場面の方が多いと思います。エクセルシートに仕入れ先一覧表があって、一行ごとに仕入れ先情報が格納されている。一行ごとにその仕入れ先情報を配列に格納し、別シートで何らかの作業を行い、その作業が終わったら配列を初期化して、次の行の仕入れ先のデータに移る、と言った具合です。それでは、静的配列を初期化するにはどうすれば良いのでしょうか。結論としては静的配列そのものをEmptyにする事はできません。Subコンパイルエラーが発生した今回は一行ごとの文法のミスはないので(一行だけ見ればarrは配列とはわからず、Variant型の変数の値をEmptyに設定しようとしただけなのでこの一行だけ見ればエラーではない)コーディング中のエラーは出ませんでしたが、実行前のコンパイルでエラーとなりました。実行を押した瞬間にコード全体を見ると配列として宣言した変数arrにEmptyをいれようとしたことがわかったのでコンパイルエラーとなりました。Emptyの部分で発生しました。arrは配列として宣言してそのものの実態があるのにそれをEmptyにはできない、と言う事です。考えてみれば私たちがここでやりたいことは、arrの要素をすべてEmptyにしたい、と言う事であって、arrそのものをEmptyにしたわけではありません。そこで、ループを使って、全ての要素をEmptyにします。各要素にEmptyを格納していくイメージでOKです。正しい初期化のサンプルは下記の通りです。Subこれで無事に初期化できています。今回は静的配列なので一番小さなインデックスと一番大きなインデックスの数値がいくつか分かっています。数字で直接ループの範囲を指定しても構いません。今後業務の内容が変更になり、配列に格納したいパラメータ(値)の数が変わることも想定して、配列の一番小さいインデックスと一番大きなインデックスを取得する関数を使う方が好ましいでしょう。4LBound関数、UBound関数の使い方は引数にインデックスの最小値や最大値を取得したい配列名を入れるだけです。本当はもう一つ引数をとることができるのですが、それは多次元配列のところで解説します。今は、単に配列名を引数として渡す、と覚えればOKです。ちなみに引数は「ひきすう」と読みます。プロシジャや関数に渡す入力値のことです。インデックスの最小値と最大値が取得できたので後はFor~Next文で一つずつEmptyを入れて行きます。先ほどの、サンプルプロシジャのインデックスの下限と上限をLBound関数とUBound関数で取得します。SubいつものようにF8で一行ずつ実行していきます。配列arrの各要素に値が順に格納され、その後、順にEmptyに戻っていく様子が分かります。実務的なサンプルを作成する実務で使うサンプルに移ります。売上データサンプル今回は上のようなデータをサンプルとして考えます。これは各支店の売上のデータのイメージです。一行分のデータを配列に格納する何らかの処理を行う配列を初期化する次の行に移るこれを最終行まで繰り返します。'ここにメインの作業を書く。Subはい、できました。便利ですね!これからは配列をうまく使ってコードをシンプルにし、ワークシートへの参照回数を減らしていきましょう。ワークシートへの参照回数を減らすことはマクロの高速化にもつながりますよ。配列を徹底的に解説するシリーズもいよいよ最終回です。4多次元配列VBAにおける多次元配列を解説します。今回はVBA配列の中で基本に当たる静的配列について解説します。配列は有効に使いこなせていますか。週間)1985年生まれの会社員。業務改善部隊に異動で芽を出し、現在に至る。本業での知識と経験を元に、ブログとTwitterで1生産性向上2業務改善3自動化について情報発信しています。アーカイブはてなブログをはじめよう!mutable_yunさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。