だいたいこんな感じ

電子制御(Arduino), VBAプログラミング, 水中ドローン,趣味,他

Excel VBA if関数とLoop関数、Offset関数を用いた簡易プログラム例と簡単な解説

検索するプログラムが作りたい!

 

セルの列の中から、特定のワードを検査し、該当があったら

真横のセルに◎をつけるプログラミングサンプルです。

Loop関数を使用せず、Find関数でも良いのですが

VBAをはじめたばかりの方には少し複雑なので、今回はシンプルな3つの

関数について紹介です。

 

 作成例 (サンプル)

 

 Cell(2,"D")に"プリキュア"という文字を入れて検索を押すと

f:id:DPM:20180729232159p:plain

プリキュアと書かれたセルの横に"◎"が書かれるというプログラムです。

f:id:DPM:20180729232505p:plain

 

無事プリキュアに◎がつきました。

以下のプログラムが検査ボタンに組み込まれています。

--------------------------------------------------

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)に"◎"を記入します。

 

 

これらの関数は非常によく使いますので、すらすら打てるくらいまで

いろいろ想定して作ってみるといいかもしれません。