目次
ダブルクオーテーション
今回の投稿では、 ExcelVBA でダブルクオーテーション( " の記号)を文字として出力するマクロを作成してみました。下記画像のようにメッセージボックスにダブルクオーテーションを表示してみたいと思います。
![ダブルクオーテーションが文字として出力されている。](https://pulogu.net/wordpress/wp-content/uploads/2020/09/double-quotes-are-output-as-characters-298x300.png)
マクロのコード
早速、以下のマクロを作成してみました。「""""」と書いている箇所が「"」と表示される予定です。
Sub ダブルクオーテーションを文字として表示するマクロ()
MsgBox """" & "ABC" & """" '""""と書いています。
End Sub
上のマクロを実行すると以下の画像のようにダブルクオーテーションが表示されています。「""""」と書くと「""」と表示されそうにも思いますが、「""」の 2 文字で「"」と表示されるようです。
![マクロ実行結果です。ダブルクオーテーションが文字として表示されています。](https://pulogu.net/wordpress/wp-content/uploads/2020/09/macro-execution-result-double-quotes-are-displayed-as-characters.png)
![両端( 1 文字目と 4 文字目)は文字列定義に必要な引用符です。表示はされません。 2 文字目と 3 文字目の「""」が「"」と表示されます。](https://pulogu.net/wordpress/wp-content/uploads/2020/09/decompose-the-string-1.png)
「"""」ダブルクオーテーション 2 つの場合のマクロを作成して試してみることにします。
Sub ダブルクオーテーション2つの場合のマクロ()
MsgBox ""
End Sub
マクロを実行してみると、目に見える文字は表示されていませんね。
![長さ 0 (ゼロ)の文字列が表示されました。](https://pulogu.net/wordpress/wp-content/uploads/2020/09/double-quotes-for-two.png)
今度は「"""」ダブルクオーテーション 3 つの場合のマクロを試してみることにしましたが、「MsgBox """」と入力して「Enter」したところ、自動で「MsgBox """"」と自動補完されました。
![ダブルクオーテーション3つの場合](https://pulogu.net/wordpress/wp-content/uploads/2020/09/double-quotes-for-3.png)
セル値にダブルクオーテーションの文字が含まれている場合は、どうなるのか試してみます。「B3」セルに入力されている「"ABC"」の文字を Msgbox 関数で表示してみます。
![セルの値にダブルクオーテーションが含まれている。](https://pulogu.net/wordpress/wp-content/uploads/2020/09/the-cell-value-contains-double-quotes-300x225.png)
下記のマクロ実行してみます。「B3」セルに入力されている値を取得してダイアログボックスに表示するマクロです。
Sub セル値にダブルクオーテーションの文字が含まれている場合のマクロ()
MsgBox Range("B3").Value
End Sub
マクロの実行結果は以下のようになりました。セルに入力されている値がそのまま表示されていますね。
!["ABC" と表示されている。](https://pulogu.net/wordpress/wp-content/uploads/2020/09/the-double-quotation-contained-in-the-cell-value-is-displayed-as-it-is.png)
参考資料
- 文字列型 (String) - Visual Basic | Microsoft Docs
- https://docs.microsoft.com/ja-jp/dotnet/visual-basic/language-reference/data-types/string-data-type
テスト環境
- Windows 10
- Microsoft Office Excel 2003
あとがき
別のやり方として、 Chr 関数を使用してもダブルクオーテーションを文字として出力する事が可能です。 Chr 関数で「Chr(34)」と記述すると「"」の文字を返すので、それをそのまま連結して出力可能です。
Sub Chr関数を使用してダブルクオーテーションを文字として表示するマクロ()
MsgBox Chr(34) & "Chr関数使用" & Chr(34)
End Sub
![Chr 関数を使用したマクロの結果です。](https://pulogu.net/wordpress/wp-content/uploads/2020/09/the-result-of-a-macro-using-the-chr-function.png)
以上閲覧ありがとうございました。