前回まではExcel VBAエキスパートスタンダード1章の勉強をしました。
前回までの記事はこちら
今回は2章の配列についてレポートしていきます。
なお今回もわかった文言を絵や表を使ってまとめていくことにします。
理解が間違っているところもあるかもしれませんがわからない人と同じ視点に立てるのは今しかないので細かいところはご容赦ください。
間違えに気づいたら修正していきます(笑)。
なおこの体験記は短時間で効率よく勉強することを目的として書いていますので勉強の際に参考にしてもらえれば幸いです。
<今回の目的>
値渡しと参照渡しを理解する
- 2章を精読する
- 配列をわかりやすく説明する
今の立ち位置
以前の記事で説明しましたが私の今の立ち位置は以下です。
概要 | 内容 | 勉強時間 | 完了の有無 (Basic) | 完了の有無 (Standard) |
1 公式テキストの購入 | 安く購入できる方法を探す | 1時間 | 1時間済 | 済 |
2 公式テキストの把握 | テスト形式、単元を知る | 1時間 | 15分済 | 7分済 |
3 公式テキスト問題集実施1 | スタンダード2回、ベーシックで1回実施 | 4時間 | 50分済 | 30分 |
4 公式テキスト勉強(×部分) | 間違えた単元の勉強を実施。暗記はボイスメモで | 3時間 | 1時間 | 20分 |
5 公式テキスト勉強(〇部分) | 会っていた単元の勉強を実施。暗記はボイスメモで | 3時間 | 1時間 | |
6 公式テキスト問題集実施2 | スタンダード 3回実施 | 4時間 | ||
7 3~6の繰り返し | 3セット実施 | 20時間 | ||
計 | 36時間 | 4時間5分 | 47分 |
今回は第2章の配列について説明します。
結論
いきなりですが結論です。
配列とは、要素(リンゴ)をまとめた一つの箱。変数は1つの箱、配列は仕切りを入れた大きな一つの箱と考える。
配列のイメージ
配列のイメージは以下になります。複数のデータをリンゴに見立てています。
通常一つの箱には一つのリンゴしか入れられません。その為新しいリンゴを用意する際は一つ一つ箱を用意する必要があります。
しかし仕切りが入った箱の場合は状況が異なります。複数のリンゴはひとまとまりにして収納することができます。
このように一つとしてまとめる(配列)と複数のデータをひとまとまりとして扱うことが可能になります。
どんな時に便利か?
配列は次のメリットがあります。
①変数の定義がしやすくなる
上の例では変数を定義する際リンゴA=ふじ リンゴB=紅玉という風に一つずつ名前を作っていく必要があります。
しかしリンゴ入りの箱という配列にすることで変数名を一つにすることができます(ここではA)。
配列の中の要素はA(0),A(1)としてあらわすことができます。
これら一つの配列に入ったものは同列のものなので一義的に見ることができます。
②繰り返し処理によってまとめて処理ができる
配列はFor~NextやDo LOOP構文と相性がよく簡単に繰り返し処理ができます。
まとめたものについてまとめて同じ処理ができるので処理速度が上がるというメリットもあります。
配列の宣言方法
Dim 変数名() As データ型
通常の変数と異なるのは変数名の後に()を用意してデータを格納する個数を指定することです。
なお一つ一つの領域を要素といいます。この要素は(一般的には)0から指定されていく為(9)と書けば10個の要素を用意したことになります。
なお()内にあらかじめ数字を入れておかない配列を動的配列といいます。この説明に関してはテキストでということで割愛します。
配列への代入方法
変数名()=
以下は3つの部屋に「佐藤」「田中」「原田」と一つ一つデータを代入する方法です。
Sub sample1()
Dim i As Long, A(2) As String
A(0) = "佐藤"
A(1) = "田中"
A(2) = "原田"
End Sub
配列の操作方法
A(0),A(1)・・・での方法
一つ一つデータを抜き出して処理する方法です。特定のデータのみを抜き出して処理したいときに使います。以下は配列を取得したのち一つずつデータを抜き出してA1~A3に代入するコードです。
Sub sample1()
Dim i As Long, A(2) As String
A(0) = "佐藤"
A(1) = "田中"
A(2) = "原田"
Range("A1") = A(0)
Range("A2") = A(1)
Range("A3") = A(2)
End Sub
A(i)での方法
3つまで格納した各要素をA列に挿入する方法です。For~Nextを使っています。
Sub sample2()
Dim i As Long, A(2) As String
A(0) = "佐藤"
A(1) = "田中"
A(2) = "原田"
For i = 0 To 2
Cells(i + 1, 1) = A(i)
Next i
End Sub
この方法を使うことで配列の要素をまとめて処理することが可能になります。
ここでのまとめ
配列とは、リンゴ(要素)をまとめた一つの箱。変数は1つの箱、配列は仕切りを入れた大きな一つの箱と考える。
です。
配列を使いこなせると処理が早くなるとのことなので使いこなしていきましょう。
ちなみに今回のテキスト勉強時間は10分でした(ブログ作成に別に時間はかかっています汗)。
コメント