- ベストアンサー
Excelで特定の文字列があるかないかの検査
Excel VBAで文字列を調べて、そのセルに文字列が存在すれば切り抜いて変数に保存するという作業を行いたいと 思っています。例えば、本という列があるとします。本の列には、 $$book=本 $$books=本部類 という値が入っていたりします。"="以降を切り抜いて、bookは列1、booksは列2に挿入したいと思います。 この場合、"本"という値は列1へ、"本分類"という値は列2へ入ることになります。 この文字列の調べ方がわかりません。Instr関数を使うことを考えたのですが、どちらの値もヒットしてしまいます。 どのような関数を使ったら上手に文字列を切り抜くことが可能でしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (4)
- cj_mover
- ベストアンサー率76% (292/381)
こんにちは 何をお訊きになりたいのか、わからないのですが、 > Excelで特定の文字列があるかないかの検査 / > Excel VBAで文字列を調べて、そのセルに文字列が存在すれば切り抜いて変数に保存するという作業を行いたいと > 思っています。 / > "="以降を切り抜いて、bookは列1、booksは列2 / > Instr この部分にだけ反応します。 # 此処の掲示板でコードの提示のない質問にコードで応えるのは、 # 抵抗があるのですが、、、 Dim 文字列$, 列1$, 列2$ 'ということなのだとして、、、 If InStr(文字列, "book=") > 0 Then 列1 = Mid(文字列, InStr(文字列, "=") + 1) ElseIf InStr(文字列, "books=") > 0 Then 列2 = Mid(文字列, InStr(文字列, "=") + 1) End If ' 「文字列」に"book="が見つかったならば ' 「文字列」で"="が見つかる位置の次の桁以降の「文字列」を抜き出す。 ' 以下同様。 というようなことでしょうか?
- DOUGLAS_
- ベストアンサー率74% (397/534)
本当にお書きの通りなのでしたら、 >例えば、本という列 を選択して、 With Selection .Replace "$$books", "$$books=" .TextToColumns Other:=True, OtherChar:="=" .Delete Shift:=xlToLeft End With のようなことで実現可能かと。。。
- kokorone
- ベストアンサー率38% (417/1093)
という値が入っていたりします。"="以降を切り抜いて、bookは列1、booksは列2に挿入したいと思います。 この場合、"本"という値は列1へ、"本分類"という値は列2へ入ることになります。 →”列1””列2”が2回ずつ出てきています。どうしたいのか、理解できません。 Instr関数を使うことを考えたのですが、どちらの値もヒットしてしまいます。 →「どちら」とは何と何を検索したのでしょうか? 「本部類」と「本」を検索して、どちらでもヒットしたのであれば、 まず「本部類」で検索し、ヒットしない場合のみ「本」で検索すれば よいはずです。
- marbin
- ベストアンサー率27% (636/2290)
いまいちよくわかりませんが、 Like演算子 は使えませんか? Split関数 も便利だと思います。 まず「本部類」でしらべて、該当しなかったら、次に「本」で しらべるとか。