ここから本文です

VBAで教えてください。 VBAでたとえば、特定の範囲内に特定の値があるかないか...

nak********さん

2014/12/2412:03:54

VBAで教えてください。

VBAでたとえば、特定の範囲内に特定の値があるかないかを探す関数をどのように組むのでしょうか。

たとえば、
If Range("○○:○○.Offset(0, 1)").Value Like "*△*" Then
= "×"
Else
= "○"
といった感じで考えていたのですが、うまくいきません。確かにこれだとうまくいかないということはわかるのですが、修正方法が・・・です。よろしくお願い致します。

閲覧数:
15,609
回答数:
3

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tra********さん

2014/12/2413:34:38

条件に合うセル数を数えればよいのでは?
すなわち、COUNTIF関数を使用すればよいのでは?

特定の範囲がA1:A10
「△」を含むセルがあれば、B1に○、なければ、×
とするなら

Sub sample()
If WorksheetFunction.CountIf(Range("A1:A10"), "*△*") > 0 Then
Range("B1").Value = "○"
Else
Range("B1").Value = "×"
End If
End Sub

と言った要領

質問した人からのコメント

2014/12/24 13:58:12

笑う ありがとうございました。VBAでの関数の使い方がよくわからなかったので助かりました。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

por********さん

2014/12/2412:50:47

こんにちは。
1)range範囲.findを使う
2)range範囲のfor eachループとlikeをくみあわせる

などになります。
likeと範囲は組み合わせしません。出来ないのは仕様の範囲です

jun********さん

2014/12/2412:51:15

検索は、基本的には以下のようにします。

Set fnd=Range("A1:Z15").Find("keyword")

これで、「fnd」に結果が、Rangeオブジェクトとして取得できます。オブジェクトですから、見つからなければ「Nothing」です。

If (Not fnd Is Nothing) Then
tmp=fnd.Value
End If

次のような記述もできます。

Set fnd=Range("A1:Z15").Find(What:="keyword",Lookat:=xlWhole,MatchCase:=True)

「What」はキーワード、「Lookat」はxlWholeで完全一致、xlPartで部分一致、「MatchCase」は大文字小文字を区別するかです。他にもパラメーターはありますが、マクロの記録で調べてみると良いでしょう。

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる