こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBA CASE文 文字列比較に特殊記号

CASE文で ¥ \ など特殊な記号で
文字列比較したいケースが時折あります。

MsgBox 等で比較すると問題無くTrueになるのですが、
Caseの文字列比較だと正しく評価されません。

どの様に記述するべきでしょうか。

投稿日時 - 2018-04-24 10:26:49

QNo.9491805

すぐに回答ほしいです

質問者が選んだベストアンサー

CASE文でなく、LIKE演算子で並べてはどうか。
https://www.sejuku.net/blog/33810#i-2
の「ワイルドカードのエスケープ」などの内容を応用できないか。
プログラムコード上で、(CASEに似て)列挙的にコードが書けるのでは。
CASEはそっくり一致だと思うので、が
http://www.relief.jp/docs/excel-vba-select-case-like.html
http://vbaexcel.seesaa.net/article/140800843.html
ーー
下記もテスト的にやってみてください。2文字重ね法。
VB:通常の文字列 <-VBはVB6.0?
 VBの通常の文字列リテラルでは、ダブルクォーテーション記号「"」や改行記号などの特殊文字は、そのままでは文字列リテラル内に記述できない。
 ダブルクォーテーション記号「"」を文字列リテラル内に記述するには、ダブルクォーテーション記号を2つ重ねて「""」と書く。

投稿日時 - 2018-04-24 11:28:11

お礼

Likeでも良いんですが
複数条件必要になりそうだったのと
曖昧で複数条件だと煩雑になりそうだったので
結局Replaceして逃げました
もしくはcaseの評価にboolを使い
bool 代入時に評価させるのもアリかも知れません
と言うかもうIFでやれって感じですが。。。
参考になりました有難う御座いました。

投稿日時 - 2018-04-25 18:25:21

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

ASCIIで比較するという手段もあるのではないでしょうか!

投稿日時 - 2018-04-24 10:55:51

お礼

なるほどそれもありですね
参考になりました有難う御座います

投稿日時 - 2018-04-25 18:13:47

あなたにオススメの質問