VBATips

ダブルクォーテーションを文字列に簡単に入れたい【Chr(34)】

ダブルクォーテーションを簡単に入力したい

VBAコード上で文字列を囲む場合はダブルクォーテーションを使用します。

Public Sub sample()
    Dim s As String
    
    s = "これは文字列です"  '→これは文字列です
    
    'ダブルクォーテーションを文字列上に入れると
    '下記のような表現になる
    s = "これは" &"""" & "文字列" & """" & "です" '→これは"文字列"です
End Sub

 

文字列上にダブルクォーテーションを入れる方法を忘れがち

単純に囲むだけで使用するダブルクォーテーションは難しくありませんが、
文字列上にダブルクォーテーションを入れようと思うと、方法を忘れがちです。

“””で3つ使えばよいのか?””””で4つなのか?とエスケープする方法を忘れてしまい、
都度入力→エラーの対応せずとも簡単に入力する方法があります。

Chr関数を使用して簡単に挿入しましょう。

Chr(34)は「”」と同じ効力

下記サンプルのように、Chr(34)を使用する事で簡単に「”」を挿入可能です。
忘れがちであれば、Chr(34)を上手く利用すべきです。


Public Sub sample()
    Dim s As String
    
    '■どちらも結果はダブルクォーテーションのみの文字列
    s = """"   '→ 「"」
    s = Chr(34) '→ 「"」
    
    '■文字列上に入れる場合はアンドで挟む。
    s = "これは" & Chr(34) & "文字列" & Chr(34) & "です"
    MsgBox s '→これは"文字列"です
End Sub

Chr(34)を利用する事で簡単に記載は可能ですが、
文字列で挟む場合は、記載が手間なので一長一短でもあります。

その他のChr関数

その他Chr関数もうまく使用し、特殊文字を簡単に使用しましょう。

Chr関数意味
Chr(39)シングルクォーテーション(‘)
Chr(34)ダブルクォーテーション(“)
Chr(9)タブ
Chr(32)半角スペース

改行コードも表すケースがあります。

Chr関数意味
Chr(10)vbLf
Chr(13)vbCr
Chr(10)+Chr(13)vbCrLf

改行コードの違いはこちらの記事を参照。
改行コードの違い「CR」と「LF」と「CRLF」


Public Sub sample()
    Dim s As String
    
    s = "これは" & Chr(10) + Chr(13) & "文字列です"
    
    MsgBox s  '→これは
              '  文字列です
End Sub

関連記事

コメント

タイトルとURLをコピーしました