![見出し画像](https://assets.st-note.com/production/uploads/images/9287686/rectangle_large_type_2_d75105f9cb91e1464a448a4eb659cb75.jpeg?width=1200)
【Excel】配列変数にするのはFor文を使うためである(速読VBA単語Program3-6)
プログラミングで「配列」といえば難しい概念のように感じますが、VBAの場合はあまり深く考える必要はありません。
配列を説明するときに「連続する箱を大量に用意する」と説明することがあります。しかし、なぜそのような大量の箱を用意する必要があるのか、どのようなタイミングで大量の箱を用意すればいいのかが分かりにくいです。
速読VBA単語Program3-2で「For文」を扱いました。なぜ大量の箱が必要なのか・・・それはFor文を使うためです。今回は「ループのために配列を用意する」という考え方を説明したいと思います。
ExcelVBAで習得する配列には1次元配列と2次元配列(多次元配列)がありますが、今回は「1次元配列」の練習をします。
目次
0.実験用Excelファイルの準備
1.Sheets()はFor文が使える
2.配列変数
(1)変数が連番でないとFor文が使えない
(2)Dimで宣言をする
(3)配列とFor文
(4)セル→配列→セル
(5)開始番号も指定する場合
3.転記先の行番号を変数にする
4.Array
5.Split
6.UboundとLbound
7.補足:For~To~で関数を用いてはいけない
8.Join[対義語]
9.vbNewLine
10.Redim
11.章末テスト(長文読解問題)
Program3-6の最終目標
目次の最後にある長文読解の問題文をここに示します。このプログラムでは次のことを習得することができます。
・配列の宣言とFor文による繰り返し(代入)
・行番号をカウントしながら転記すること
・ArrayとSplitで配列を作る方法
Sub VBA3_6()
Dim a(20)
Dim b(20)
a_tsuika = Array("+", "-", "*", "/")
b_tsuika = Split("加算,減算,乗算,除算", ",")
bmax = 10 + UBound(b_tsuika)
ReDim c(bmax)
For i = 0 To 9
a(i) = Cells(i + 1, 1)
b(i) = Cells(i + 1, 2)
Next
For i = 10 To bmax
a(i) = a_tsuika(i - 10)
b(i) = b_tsuika(i - 10)
Next
For i = 0 To bmax
c(i) = "【" & a(i) & "】" & b(i)
Next
Debug.Print UBound(c) - LBound(c) + 1
MsgBox Join(c, vbNewLine)
End Sub
練習問題(無料)
速読VBA単語Program3-6までを出題範囲とする練習問題を無料で公開しています。
注意事項
「速読VBA単語」は、文法を完全に無視して、難易度順に単語練習をするだけでExcelVBAを習得しようという「邪道」な企画です。本講座は、極めて強い副作用があり安全上注意が必要です。この説明書は本講座を正しく受講するための説明文書です。受講する前に必ずお読みください。
無料ゾーンご案内
速読VBA単語Program1-1, Program1-2, Program2-1は無料で公開しております。ぜひご覧ください。
また、WordやExcel(マクロ以外)の記事はすべて無料で公開しております。
0.実験用Excelファイルの準備
まずは、今回のプログラムで使用するExcelファイルを作ります。
ここから先は
¥ 500
この記事が気に入ったらサポートをしてみませんか?