前々回の記事に続いて、配列で遊んでみましょう。
前々回は、2次元配列を、1次元配列に変更しましたが、今回は2次元配列のままコードを記載します。
何度も言いますが、配列で遊んでみる気持ちが重要です。
目次
配列で遊んでみる 配列の要素をセルに実装
こんにちは。伊川(@naonaoke)です。
前々回と、同様に、配列で遊んでみましょう。
今回は、配列の要素をセルに実装します。
ここも、少しの勉強が必要です。
そもそも、配列は、インデックス番号を合わせるというのが、難しいです。
最初は、イメージできなので、仕方ないです。
だから、今回は、本当に簡単なプログラムから、9段階まで、少しずつ難しくしてみようと思います。
これも、私が、実際に勉強した方法です。
このブログはこんな人にお勧め
- VBAを勉強している人
- 配列を勉強している人
- 配列が、難しくて、諦めかけている人
このブログを、読み終わるころには・・・・
配列の要素を、セルに実装することができます。配列の苦手意識が、少し減るのではないでしょうか?
配列で、遊ぶ
NETでコードを探しても、必ず、終了は、イミディエイト・ウィンドウに表示されて終わり。
そこではなくて、セルに実装してほしいと思う人は、沢山いると思います。
どうやれば、いいのだろうと思っている人に少しでもいいので、光を提供します。
やることは、そんなに、難しくありません。
配列の要素をセルに実装 作業手順 その1 一番カンタンに、セルに実装
ストップで確認すると、ちゃんと格納されていなす。
このまま、実行すると、ちゃんとセルに表記されています。
配列の要素をセルに実装 作業手順 その2 For Nextを使う
1,2,3が並んでいます。
効率がわるいですよね?
だから、ループを使います。
配列と、For~Nextは相性がいいのです。
これで完成です。
配列の要素をセルに実装 作業手順 その3 普通の配列は、0から始まる
ここでは、配列のインデックス番号は、1ではなく、0から始まっています。
しかし、ループは、1から始まっています。
この状態ですと、ループ開始の番号と、インデックス番号の開始が、合致しません。
Data(i – 1)のように記載します。
この引き算をすることで、ループ開始の番号と、インデックス番号の開始が、合致します。
ここを理解するまでに、少し時間がかかると思います。
配列の要素をセルに実装 作業手順 その4 配列の要素数がわからないときは?
UBound、LBound関数で配列の要素数を取得します。
今回の場合は、肉眼で確認できますので、意味ないですけどね。
配列の要素をセルに実装 作業手順 その5 セルの値を配列に格納する
下記のようなデータを配列へ格納します。
配列をイメージするために、あえて、横長にしました。
この下記のデータを、セルA3 から転記します。
ここが重要なのですが、2次元配列なっているのがわかりますが?
10という値は、Date(1,1)に格納されているのであって、前回のようにData(1)に格納されているわけではありません。
ここも少し難しいと思います。
配列の要素をセルに実装 作業手順 その6 コードに汎用性を持たせる
配列の範囲の指定を、CurrentRegionで実装しました。
そして、セルへ転記する場合は、Resizeを使い、かつ、UBound、LBound関数で、実装しました。
これは結構使えます。
配列の要素数が、増減しても、反自動で、転記をしてくれます。
配列の要素をセルに実装 作業手順 その7 二次元配列をFor~Nextでセルに実装する
こんな感じでループします。
ただ今回は、縦は、1だけなので、ループを使う必要はないです。
Cells(i + 2, j)は、Cells(3, 1)になることが分かれば、カンタンですね。
初心者の頃は、ここが難しいですね。
配列の要素をセルに実装 作業手順 その8 二次元配列をFor~Nextでセルに実装する その2
では、上のデータをセルA4から転記します。
配列の要素をセルに実装 作業手順 その9 二次元配列をFor~Nextでセルに実装する その3
今回も配列は、肉眼で確認できますが、配列の要素数が不明という前提で、UBound、LBound関数で実装します。
多分、こちらのほうを、覚えておくと、汎用性があると思います。
Range(“A3”).Resize(UBound(Data, 1), UBound(Data, 2)) = Data
上のか書き方は、VBA特有の書き方だと思います。
ここがポイント

このコードもNETで拾ったコードを自分なりにアレンジしました。このアレンジも、自分で少しずつ難しくしていくのが、ポイントです。このような遊び感覚のファイルをたくさん、自分で作成してみましょう。間違いなく、スキルアップします。
まとめ
配列の遊びシリーズに関しては、折を見て、また紹介していこうと思います。
こんな遊び心が、時には、グーンとスキルアップのきっかけとなると思います。
今回も最後まで読んでいただき、ありがとうございました。
今回のサンプルファイルは、No222です。

わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。