Excel VBAエキスパート体験記12(配列)

VBAエキスパート

前回まではExcel VBAエキスパートスタンダード1章の勉強をしました。
前回までの記事はこちら

今回は2章の配列についてレポートしていきます。


なお今回もわかった文言を絵や表を使ってまとめていくことにします

理解が間違っているところもあるかもしれませんがわからない人と同じ視点に立てるのは今しかないので細かいところはご容赦ください。
間違えに気づいたら修正していきます(笑)。

なおこの体験記は短時間で効率よく勉強することを目的として書いていますので勉強の際に参考にしてもらえれば幸いです。

<今回の目的>

値渡しと参照渡しを理解する

今回の勉強方法
  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分でした(ブログ作成に別に時間はかかっています汗)。

コメント

タイトルとURLをコピーしました