pickup

前々回の記事に続いて、配列で遊んでみましょう。

前々回は、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特有の書き方だと思います。

ここがポイント

ここがポイント
Function8.png
このコードもNETで拾ったコードを自分なりにアレンジしました。このアレンジも、自分で少しずつ難しくしていくのが、ポイントです。このような遊び感覚のファイルをたくさん、自分で作成してみましょう。間違いなく、スキルアップします。
動画とブログでわかりやすくExcelとACCESSを紹介しています

まとめ

配列の遊びシリーズに関しては、折を見て、また紹介していこうと思います。

こんな遊び心が、時には、グーンとスキルアップのきっかけとなると思います。

今回も最後まで読んでいただき、ありがとうございました。

今回のサンプルファイルは、No222です。

サンプルファイルを購入希望の方はココをクリック
毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。

  • なんで作動かないの?
  • もうやだ!VBAなんか嫌い!
  • ネットで調べても情報がない!

必ず作動するコードが、ここにあります。

スポンサーリンク

Twitterでフォローしよう

おすすめの記事