VBAを勉強していると、必ず、配列の壁にブチ当たります。

配列は、難しいですね。

私もそんなに得意ではありません。

そんな、配列で遊んでみましょう。

配列での遊び方

こんにちは。伊川(@naonaoke)です。

以前、配列がわからない人集合で、結構な時間を使って配列を紹介しました。

あの時は、配列が理解していないと、VBAを極めることができないと思っていました。

しかし、現時点は、配列は重要だけど、配列を理解しなくても、実装できるということがわかりました。

しかし、配列は、重要です。

そんなときに、カンタンなコードで、改造して、遊んでみることが重要です。

このブログは、こんな人にお勧め

今回のテーマ
  • 配列を勉強している人
  • 配列で、カンタンなコードを覚えても、意味がないと思っている人
  • 配列は、難しいと思っている人

解決

NETで、拾ったコードを自分なりにアレンジしてみることす。
プログラムは、写経と、プログラムのアレンジで確実に実力が付きます。そのことが実感できると思います。

配列

この配列自体の言葉も馴染がないですね。

配列は、箱に値を入れるイメージです。



スポンサーリンク
そんな事はわかっていると、言われそうです。

配列は、それ以上でも、それ以下でもありません。

しかし、本当にあなたは、そのコードをアレンジできますか?

私は、出来ません。

かつてはそうでした。

配列も、VBAのコードも、身の丈に合ったコードを書くべきです。

いきなり、連想配列、動的配列といっても理解できません。

なので、本当に、NETから拾ってきたコードをアレンジします。

配列 作業手順 その1 NETからコードを探す

コードを参考にしました。


この配列は、県を含む値を探しています。

このコードは、みなさんから見て、どうでしょうか?

配列を理解していないときは、こんなコードは意味がないと思っていました。

セルの記載がない。

全部の値が、VBAのコードに記載されています。

だから、意味がないと思っていました。

配列 作業手順 その2 県をアレンジする

ここが、問題です。

なぜ、ここで県をしているのか?

Find = Range(“B1”)


アレンジ成功です。

配列 作業手順 その3 配列をアレンジする


このようにアレンジできないのか?



こんなエラーがでます。

型が一致しません。

何度も見るエラーです。

何の型が合わないのか分かりません。

Array1 = Array(Range(“A1:A4”))

Array1 = Array(“東京都”, “大阪府”, “北海道”, “青森県”)

1次元配列と2次元配列の違いです。

Findは、2次元配列には、使えません。

Array1 = Array(“東京都”, “大阪府”, “北海道”, “青森県”)

Array1 = Application.Transpose(Range(“A1:A4”).Value)

このように変更しないとダメです。

配列 作業手順 その4 何かおかしい

県が存在しているのに、存在しないとどうなっているのでしょうか?


ローカルウィンドウにはこのように表示されます。

NETで拾ってきたコードの配列の中身を確認すると、下記のようになっています。


東京のインデックス番号がずれています。

セルを配列にしたときは、

東京のインデックス番号は、1に対して、VBAで配列を指定した場合は、東京のインデックス番号は、0です。

ここを修正しないといけません

配列 作業手順 その5 完成のコード


どこを修正したのか?

If (UBound(Result) <> -1) Then

If (UBound(Result) <> 0) Then

ここを修正しました。

ここがポイント

ここがポイント
Function8.png
配列は、難しいですけど、このように積み重ねていけば、それなりの知識はついてきます。その知識は、いつか、突然理解でるようになります。その日は、必ず来ます。それまで、努力ができるか、継続できるかがポイントです。

動画とブログでわかりやすくExcelとACCESSを紹介しています

まとめ

配列につて、私なりの勉強方法を紹介しました。

お役に立てれば、幸いです。

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

 

今回のサンプルファイルは、ありません。

サンプルファイルを購入希望の方はココをクリック
ネットや基本書で調べるはやめてください

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

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

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

スポンサーリンク

Twitterでフォローしよう

おすすめの記事