Excel VBA if関数とLoop関数、Offset関数を用いた簡易プログラム例と簡単な解説
検索するプログラムが作りたい!
セルの列の中から、特定のワードを検査し、該当があったら
真横のセルに◎をつけるプログラミングサンプルです。
Loop関数を使用せず、Find関数でも良いのですが
VBAをはじめたばかりの方には少し複雑なので、今回はシンプルな3つの
関数について紹介です。
作成例 (サンプル)
Cell(2,"D")に"プリキュア"という文字を入れて検索を押すと
プリキュアと書かれたセルの横に"◎"が書かれるというプログラムです。
無事プリキュアに◎がつきました。
以下のプログラムが検査ボタンに組み込まれています。
--------------------------------------------------
Sub 検索()
Dim kensaku As String
kensaku = Cells(2, "D")
Dim GYO As Integer
GYO = 5
Do Until GYO = 14
If Cells(GYO, "C") = kensaku Then
Cells(GYO, "C").Offset(0, 1) = "◎"
End If
GYO = GYO + 1
Loop
End Sub
--------------------------------------------------
・検索する文字を入れるCells(2,"D")の値は文字列になるので変数は String
これを kensaku とします。
・検索される文字列については5列目から順に14列目まで読み込まないといけません。
この業の変数は文字列なので変数は Integer、こちらをGYOとします。
・GYOは14行まで1ずつ足してチェックしていかなればなりませんので、
Do Until (~まで) Loop を使用します。
列が14になるまでGYOに1足すのでGYO=GYO+1
・Loop処理の間で、kensaku(検索ワード)と参照しているCells(GYO,"C")の
値が完全に一致している時、その右に1つ隣Offset(0,1)に"◎"を記入します。
これらの関数は非常によく使いますので、すらすら打てるくらいまで
いろいろ想定して作ってみるといいかもしれません。