目次
配列とは
こんにちは。伊川(@naonaoke)です。
今回は配列を紹介します。
複数の要素(値)の集合を格納・管理するのに用いられるデータ構造が配列である。
数学のベクトルおよび行列に近い概念であり、実際にベクトルおよび行列をプログラム上で表現する場合に配列が使われることが多い。
ありましたね。行列、ベクトルは高校の数学で習います。
では、配列のサンプルを解説していきます。
問題提起
(株)IKAWAの柄久 瀬瑠子(エク セルコ)は上司から下記のような依頼を受けました。
IF構文を連続して記載するのが面倒だから、
もっと簡潔にコードを記載する方法はないか?
条件式を使わず、条件判定できるのだろうか?
解決策
・配列をつかうとコードがスッキリします。
配列
高校時代に習ったベクトル、行列と配列の関係
配列となると少し難しいと思います。
それは、実感がわかないですよね。
ベクトルも行列も実社会でどのように使われているか即答できる人はいるでしょうか?
私なりの解釈ですが、行列、ベクトルは、他のシステムのバックグラウンドを支えるものです。
ベクトル、行列を知っていると、普通に計算するよりも、計算が速くなるということです。
VBAにおける配列
ベクトルと行列と同じで、配列は知らなくても支障はないとおもいますし、覚えるには、難しいし、それなりの訓練が必要です。
しかし、いったん覚えると、とてつもなく便利で、高速の処理ができるようになると思います。
配列コード作成手順 その1 Excelを確認する
SheetAAAのセルA1に名古屋があったら、SheetBBBのセルC15に名古屋を転記する。
SheetAAAのセルA1に東京があったら、SheetBBBのセルC15に東京を転記する。
SheetAAAのセルA1に大阪があったら、SheetBBBのセルC15に大阪を転記する。
SheetAAAのセルA1に名古屋、東京、大阪以外なら、SheetBBBのセルC15に無と表示する。
上の記載から考えると、IF構文、または、Select Case で作成できそうですね。
しかし、東京、名古屋、大阪以外に、もっと地名が増えれば、その分だけ条件分岐を増やすことが必要です。
この作業を上司が面等と言っていますね。
配列コード作成手順 その2 配列のコードを作成する
Sub 転記() Dim ws As Worksheet Dim ws1 As Worksheet Dim c(3) As String Dim Item_ID As Integer Set ws = Worksheets("AAA") Set ws1 = Worksheets("BBB") c(0) = "大阪" c(1) = "東京" c(2) = "名古屋" For Item_ID = 0 To 2 If InStr(ws.Range("A1").Value, c(Item_ID)) > 0 Then ws1.Range("C15").Value = c(Item_ID) Exit For Else ws1.Range("C15").Value = "無" End If Next Item_ID End Sub
今までのスキルなら、名古屋、大阪、東京の3つの条件分岐が必要でした。
今回は、配列を利用することによって、1つの条件分岐で終わっています。
ここがポイント
配列は、0から始まる。要素を決める書き方に特徴があるこのようなことを理解して配列も理解できるようになります。
まとめ
今回は少し難しかったでしょうか?配列も、少しずつ紹介していきます
今回のサンプルファイルは、No66です。
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。