EXCELのVBAで範囲内の値と完全一致で判定する

更新:2017.10.20

ある範囲の中から、特定の値と完全一致するかどうかを判定したいときに、少しはまったのでメモです。

Range("A:A").Find(What:="abc")

はじめ、このようなコードで一致するかどうかを判定していましたが、この方法だと部分一致でもOKになってしまうため、 x_abc_xみたいなデータもヒットしてします。

これを回避するためには、find()の第2引数に完全一致で比較するパラメータを渡します。

Range("A:A").Find(What:="abc", LookAt:=xlWhole)

LookAt:=xlWholeこの部分です。

このように書いておくと、完全一致でfindされます。

ちなみに、この引数を省略した場合は、LookAt:= xlPartというパラメータが暗黙的に設定されているようです。

Range("A:A").Find(What:="abc", LookAt:= xlPart)

実際にはこのように動作しています。

たまたま、xxxx_abcという値と、abcという値が範囲内に存在していて少し悩みましたが、エクセルVBAでは完全一致かどうかを明示的に書かないといけない関数がありますので、気を付けたいですね。

Excel関連記事





これからブログなどのサイトを作りたいと思っている人は、お名前.comでのドメイン取得がオススメです。

■□━━ 急げ、ドメインは早い者勝ち! ━━□■
     ■お名前.com

アマゾンの2019年本屋大賞一覧

そして、バトンは渡された
ひと
ベルリンは晴れているか
熱帯
ある男

楽天市場のおすすめ商品一覧

お金2.0 新しい経済のルールと生き方 [ 佐藤航陽 ]
全部レンチン!やせるおかず 作りおき 時短、手間なし、失敗なし
「読む力」と「地頭力」がいっきに身につく 東大読書 [ 西岡 壱誠 ]