• ベストアンサー

VBAの書き方

只今VBAで、あるセルで文字を検索して、その文字があるときに、違うセルに文字を出すマクロを作っています。 例えば、エクセルのI列に記入されている文章に"VBA"という文字が入っているとき、M列に"YES"という文字を出したいです。 どのようなマクロの式を書けばこのような操作が出来るのでしょうか。 FINDやInStr関数を使えばよいのかと思いますが… どなたかお分かりのかたは、教えて頂ければと思います。 よろしくお願い致します<m(__)m>

質問者が選んだベストアンサー

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

一例です。 文字と小文字、半角と全角等の判別は無視するようにTextモードで照合しています。 Sub sample() Dim i As Long For i = 1 To Cells(Rows.Count, "I").End(xlUp).Row If InStr(1, Cells(i, "I"), "VBA", vbTextCompare) > 0 Then Cells(i, "M") = "YES" End If Next End Sub

その他の回答 (1)

  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.1

単純に、InStr関数がゼロじゃないか見れば良い だけなんじゃ? 例えば Sub TEST() Dim CHK as String CHK = CStr(RANGE("I1").Value) IF InStr(1, CHK, "VBA")>0 THEN   RANGE("M1").Value = "YES" ELSE   RANGE("M1").Value = "" END IF End Sub こんな感じで動くんじゃないかと。 なお、ELSEのセクションは、「I1セルに"VBA"が含まれ なくなった時に、M1セルの内容を消す」処理です。

hiroin790802
質問者

お礼

非常に簡単なしきで、分かりやすく教えて下さいましてありがとうございました<m(__)m>

関連するQ&A