こんばんは、わたあめです。今回はVBScriptのダブルクォーテーション「"」のエスケープ文字についての記事になります。
VBScriptでは文字列を指定するときに、ダブルクォート「"」で囲うようになっていますよね。
という疑問を持った(というか迷った)ので、記事にしてみました!先に結論を言うと以下の通りです。
詳しく知りたい方は、本文へお進みくださいませ!それでは、いってみましょう!
VBSの文字列内でダブルクォーテーション「”」を使いたい
やりたいこととしては、「"」を文字列として表示させたいということです。こんな風に「山田」を強調させるために「"山田"」と表示させたいです。
例えば、上記メッセージを表示させるスクリプトを以下のように作成したとします。
' メッセージボックスを表示する
msgbox "私の名前は""山田""です。"
一見上手くいきそうなスクリプトですが、このままだと「文字が正しくありません」というVBScriptコンパイルエラーとなってしまう。(コードは800A0408)
対処法:ダブルクォート「"」を付けエスケープ処理する
対処法としては本当に簡単で、ダブルクォートの前にさらにダブルクォートを付けるだけになります。
例えば、前章で出てきたスクリプトでダブルクォート「"」を表示する文字として認識させたいのであれば、強調したい名前の部分は「"山田"」ではなく「""山田""」と記載します。
' メッセージボックスを表示する
msgbox "私の名前は""山田""です。"
エスケープ処理とは?
エスケープ処理って何なの?という事を簡単に述べておくと、スクリプト内で特別な意味を持つ文字列(今回の場合はダブルクォーテーション「"」ですね)を扱う際にする処理になります。
VBScript内でダブルクォーテーション「"」を、「この後の”は文字列として扱うよ!」とスクリプト側に教える処理なのです。「"」に続く文字は文字列で扱ってねという宣言のようなものです。
さいごに
いかがだったでしょうか。何となくでも伝わったでしょうか。簡単な事なのですが、毎度忘れてしまいます。(言語によっても扱い方が違ったりで。)同じような疑問を持たれた方の参考になれば幸いです。それでは、また次の記事で!