『いちばんやさしいExcel VBAの教本』で削った、2重構造のFor~Next文についてご紹介しました。
プログラミングに慣れている方の場合、こういった2重のFor~Next文では、変数名を「i」と「j」にすることが少なくありません。
が、拙著ではじめてプログラミングを学習する方の場合、2重ループの変数名にi・jを使うことは、おすすめしません。
2重ループの変数名をi・jにした場合......
ご紹介済みの2重ループの変数名をi・jにすると以下のようになります。
Dim i As Long
Dim j As Long For i = 1 To 5
For j = 1 To 2
Cells(i, j).Select
MsgBox i & "行目" & j & "列目"
Next j
Next i
End Sub
Cellsプロパティに指定された2つの引数の、1つ目が行番号を2つ目が列番号を指定していることを理解したばかりの方にとって、上記のプロシージャは理解しやすくないはずです。
このプロシージャの場合、変数のi・jのどちらが行番号でどちらが列番号なのかは、2重ループの中の
Cells(i, j).Select
を読解するまでは、わかりません。
これを避けるためには、i・jの宣言部分か、最初に登場した時点でコメントを入れておくしかありません。
これに対して行番号を表すカウンター変数を「Row」の「r」、列番号を表すカウンター変数を「Column」の「c」としておけば、
For r = 1 To 5
For c = 1 To 2
を読んだ段階で、行に対するループの中で列に対するループが行われることはわかります。
r・cがわかり辛いのであれば、
For 行 = 1 To 5
For 列 = 1 To 2
とすれば日本語を母語にしている人ならば明確です。
変数名iやjは慣習に過ぎない
変数名にiやjを使うのは、慣習に過ぎません。
小文字のアルファベット「i」「j」は、似た形状をしていることが、混乱に拍車をかけます。
(2重ではない)単純なFor~Next文の場合、拙著のLesson 29「変数の基本を学習しましょう」でも書いたとおり語義から変数名「i」の意味を感じることはできます。しかし「j」は「i」の次のアルファベットである他に意味はありません。
2重ループの場合、2つのカウンター変数には何らかの意味があるはずです。
特にプログラミングに慣れないうちは、意味を持たない「i」「j」を無自覚に使うのは、やめておきましょう。
最終更新日時:2019-06-05 10:25
- Newer:セル結合を解除して同じ値を入力するマクロ
- Older:Excel VBAのUsedRangeとは
Home » いちばんやさしいExcel VBAの教本 » 2重ループを難しいと感じたら変数名の「i」「j」をやめよう