プチIT化 PR

VBScriptの特別扱いが必要「”」文字のエスケープ文字は?

記事内に商品プロモーションを含む場合があります。
当サイトは、アフィリエイト広告を利用しています。

こんばんは、わたあめです。今回はVBScriptのダブルクォーテーション「"」のエスケープ文字についての記事になります。

VBScriptでは文字列を指定するときに、ダブルクォート「"」で囲うようになっていますよね。

悩める人
悩める人
文字列内で「"」を扱いたい(文字列として表示させたい)場合はどうすればいいのか?

という疑問を持った(というか迷った)ので、記事にしてみました!先に結論を言うと以下の通りです。

ダブルクォートの前にさらにダブルクォートを付けるだけ

詳しく知りたい方は、本文へお進みくださいませ!それでは、いってみましょう!

VBSの文字列内でダブルクォーテーション「”」を使いたい

やりたいこととしては、「"」を文字列として表示させたいということです。こんな風に「山田」を強調させるために「"山田"」と表示させたいです。

例えば、上記メッセージを表示させるスクリプトを以下のように作成したとします。

' メッセージボックスを表示する
msgbox "私の名前は""山田""です。"

一見上手くいきそうなスクリプトですが、このままだと「文字が正しくありません」というVBScriptコンパイルエラーとなってしまう。(コードは800A0408)

悩める人
悩める人
どうすればいいの?

対処法:ダブルクォート「"」を付けエスケープ処理する

対処法としては本当に簡単で、ダブルクォートの前にさらにダブルクォートを付けるだけになります。

例えば、前章で出てきたスクリプトでダブルクォート「"」を表示する文字として認識させたいのであれば、強調したい名前の部分は「"山田"」ではなく「""山田""」と記載します。

' メッセージボックスを表示する
msgbox "私の名前は""山田""です。"

エスケープ処理とは?

エスケープ処理って何なの?という事を簡単に述べておくと、スクリプト内で特別な意味を持つ文字列(今回の場合はダブルクォーテーション「"」ですね)を扱う際にする処理になります。

VBScript内でダブルクォーテーション「"」を、「この後の”は文字列として扱うよ!」とスクリプト側に教える処理なのです。「"」に続く文字は文字列で扱ってねという宣言のようなものです。

さいごに

いかがだったでしょうか。何となくでも伝わったでしょうか。簡単な事なのですが、毎度忘れてしまいます。(言語によっても扱い方が違ったりで。)同じような疑問を持たれた方の参考になれば幸いです。それでは、また次の記事で!