- 締切済み
【エクセル】結合した文字列の検索について
エクセルで、複数セルの文字列を「=A1&A2&A3&…」という感じで、B1セルに結合するとして、 例えばA2の文字列に「★」という文字が含まれているとします。 検索で「★」を指定した場合、A2のものは引っかかるのですが、B1の結合された文字列は引っかかりません。 B1セルの文字列も通常通り検索できるようにするには、B1セルでどのような処理をすれば良いのでしょうか。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
VBAでの話なら、そのコードを挙げて質問するのが、当たり前だろう。それを言ってないで質問するのは、読者を無駄に惑わせる。。 ーー そもそも、エクセル関数で扱うのは、「セルの値」で、関数の結果で戻るものも、「セルの値」である。(「値」とは、数値だけでなく、文字列の場合もある、Trueなどもある(関数によるが)。 この原則をしっかり認識してない質問者が多いように思う。関数では表示形式などは 引数に指定できない。VBAをやる段階ぐらいなら、十分認識しているべきです。 だから、文字列を&で結合した結果(文字列となる)に対し、含まれている文字列で検索(操作、VBAで)できない、なんて絶対ありえない。 VBAのFindならLookInでxlValues(sが要る)などを、明示で指定してないからではないか。 参考 http://excelvba.pc-users.net/fol7/7_1.html ーーー >処理をすれば良い どういうタイプの処理を念頭に聞いているのか?
- msMike
- ベストアンサー率20% (364/1805)
数式内に★の実体が含まれていないから、引っ掛からないのかと。 該当式が 例えば、=A1&A2&"★"&A4… であれば、引っかかりますね。
- kkkkkm
- ベストアンサー率66% (1733/2603)
あと Set Rng = Range("B1:B10").Find(What:="★", LookIn:=xlValues, LookAt:=xlPart) とかでも見つかると思いますよ。
- kkkkkm
- ベストアンサー率66% (1733/2603)
> あるVBAを適用したいのですが、文字列が正確に抽出できず上手く機能しません。 どのようなVBAで見つけようとしているのか知りませんが If InStr(Range("B1").Value, "★") > 0 Then とか If Range("B1").Value Like "*★*" Then とかで見つかりませんか?
- kkkkkm
- ベストアンサー率66% (1733/2603)
検索のときのオプションを開いて検索対象を値にしてください。
補足
早々のご回答ありがとうございます。 じつは検索方法を知りたいのではなく、あるVBAを適用したいのですが、文字列が正確に抽出できず上手く機能しません。 B1セルで複数文字列を結合する際、何らかの関数を付加することで解消できればと考えています。