ここから本文です

VBAにてFind関数で検索内容のwhatに変数を当てはめたいのですが、上手く行きません...

tfr********さん

2014/7/1618:17:57

VBAにてFind関数で検索内容のwhatに変数を当てはめたいのですが、上手く行きません。


word=abc
Find(what:=word,…)

もしくはシート内で変数を用いて検索できる方法ありますか?
どなたかご教示いただければと思います。

閲覧数:
7,849
回答数:
2

違反報告

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

ja7********さん

2014/7/1619:15:52

> VBAにてFind関数

まず、「Find関数」ではなくて 「Find メソッド」です。

> word=abc
> Find(what:=word,…)

これなら abc も変数になってしまいます。
この時点で abc の値は、どうなっていますか?
変数の宣言無しで、代入もしていないなら 値は、Empty です。

Dim word As String
word = "abc"
~.Find(what:= word,…)

のようになります。
使用する変数の宣言を強制していれば、すぐに分かることです。

VBEのメニューから[ツール]-->[オプション]-->[編集]タブで
「変数の宣言を強制する」にチェックを入れます。
これによって、コードウィンドウを開いた時に Option Explicit が
いつも自動的にモジュールの先頭に表示された状態になります。

こんなことでデバッグ作業に時間が、掛からないように
いつも この状態にして、いろいろVBAの習得に頑張ってください。

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

1〜1件/1件中

sou********さん

2014/7/1618:53:33

find関数で、検索ワードを変数にすることは可能ですよ。
ご質問に書いてある部分だけでは判断しづらいですが、Setを使っていればたぶん大丈夫だったような…。少なくとも私の環境ではこれで動きました。


word = "abc"

× tar = Worksheets("aaa").Range("A1:C200").Find(what:= word,lookat:=xlWhole)

○ Set tar = Worksheets("aaa").Range("A1:C200").Find(what:= word,lookat:=xlWhole)

あわせて知りたい

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

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

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

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

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

閉じる

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

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

閉じる