検索処理は汎用処理
「……まてよ。
検索ワードが含まれているかどうか調べるのに、全ての列のセルを連結する必要があるんだっけ……。
それに、見出しの開始行や開始列は、ワークシートによって異なるはずだ…。
検索処理は汎用処理だから、いずれ他のワークシートにも組み込んでほしいって要望がきっとあるぞ……
ならここは、定数で定義しておくほうが、後々使いまわしがいいな…」
彼は入力したコードを削除すると、次のように書き換えました。
Sub 検索()
Dim r As Long, c As Long
Dim EndRow As Long, EndCol As Long
Const MidashiRow As Long = 5
Const MidashiCol As Long = 1
EndRow = Cells(Rows.Count, MidashiCol).End(xlUp).Row
EndCol = Cells(MidashiRow, Columns.Count).End(xlToLeft).Column
For r = MidashiRow + 1 To EndRow
For c = MidashiCol To EndCol
Next c
Next r
End Sub
「うん。見出しの始まる行と列を、定数MidashiRow、MidashiColに定義。
最終行と最終列を変数EndRow、EndColに取得して、
2つのFor…Nextステートメントを入れ子にしてやればいい。
外側のループが行に対する処理で、内側のループが列に対する処理だ。
カウンタ変数も行は"r"で列は"c"にしたから、一目で判別がつくぞ……!」
ノリノリの様子で実装する森川くんを横目に眺め、岬さんは小さく笑うのでした。
今回のエピソードはいかがでしたか?