• 締切済み

【エクセル】結合した文字列の検索について

エクセルで、複数セルの文字列を「=A1&A2&A3&…」という感じで、B1セルに結合するとして、 例えばA2の文字列に「★」という文字が含まれているとします。 検索で「★」を指定した場合、A2のものは引っかかるのですが、B1の結合された文字列は引っかかりません。 B1セルの文字列も通常通り検索できるようにするには、B1セルでどのような処理をすれば良いのでしょうか。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

VBAでの話なら、そのコードを挙げて質問するのが、当たり前だろう。それを言ってないで質問するのは、読者を無駄に惑わせる。。 ーー そもそも、エクセル関数で扱うのは、「セルの値」で、関数の結果で戻るものも、「セルの値」である。(「値」とは、数値だけでなく、文字列の場合もある、Trueなどもある(関数によるが)。 この原則をしっかり認識してない質問者が多いように思う。関数では表示形式などは 引数に指定できない。VBAをやる段階ぐらいなら、十分認識しているべきです。 だから、文字列を&で結合した結果(文字列となる)に対し、含まれている文字列で検索(操作、VBAで)できない、なんて絶対ありえない。 VBAのFindならLookInでxlValues(sが要る)などを、明示で指定してないからではないか。 参考 http://excelvba.pc-users.net/fol7/7_1.html ーーー >処理をすれば良い どういうタイプの処理を念頭に聞いているのか?

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.4

数式内に★の実体が含まれていないから、引っ掛からないのかと。 該当式が 例えば、=A1&A2&"★"&A4… であれば、引っかかりますね。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.3

あと Set Rng = Range("B1:B10").Find(What:="★", LookIn:=xlValues, LookAt:=xlPart) とかでも見つかると思いますよ。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

> あるVBAを適用したいのですが、文字列が正確に抽出できず上手く機能しません。 どのようなVBAで見つけようとしているのか知りませんが If InStr(Range("B1").Value, "★") > 0 Then とか If Range("B1").Value Like "*★*" Then とかで見つかりませんか?

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

検索のときのオプションを開いて検索対象を値にしてください。

louisblue
質問者

補足

早々のご回答ありがとうございます。 じつは検索方法を知りたいのではなく、あるVBAを適用したいのですが、文字列が正確に抽出できず上手く機能しません。 B1セルで複数文字列を結合する際、何らかの関数を付加することで解消できればと考えています。

関連するQ&A