変数に入れる文字に"や*等の記号を入れるには?


まーくん  2008-10-11 02:07:28  No: 140621  IP: 192.*.*.*

変数を宣言した後に
その変数に記号のある文字を入れるのに苦戦をしています
つまり

Dim J
J = " "123"+"456" "

こう書くと当然エラーが出て代入できないのですが
この変数Jに直接「"123"+"456"」を入れるには
どうしたらいいのでしょうか
テキストボックスにこの文字を入れておいて
それをJに代入させる等は無しでお願いします

宜しくお願い致します。

編集 削除
YuO  2008-10-11 03:28:56  No: 140622  IP: 192.*.*.*

文字列リテラル中に"を入れるには,""と書きます。

編集 削除
KIJI  2008-10-11 08:30:42  No: 140623  IP: 192.*.*.*

"123"+"456"  のような定数が多い場合コード上の""""""に
目がチカチカしてわからなくなるので

    sQ = Chr(&H22)
    strTerget = sQ & "123" & sQ & "+" & sQ & "456" & sQ

のようにしています。

"123"+"456"
"234"+"567"
"345"+"678"
"456"+"789"

というような場合は

    sQ = Chr(&H22)
    sD = Chr(&H22) & "+" & Chr(&H22)
    
    strTerget1 = sQ & "123" & sD & "456" & sQ
    strTerget2 = sQ & "234" & sD & "567" & sQ
    strTerget3 = sQ & "345" & sD & "678" & sQ
    strTerget4 = sQ & "456" & sD & "789" & sQ
    strTerget5 = sQ & "567" & sD & "890" & sQ

のように。

編集 削除
K・今川  2008-10-11 10:03:49  No: 140624  IP: 192.*.*.*

変数Jに直接「"123"+"456"」を入れるのと少し違いますが

 Dim J

 J = "'123'+'456'"            'まず " を ' で入力。
 J = Replace(J, "'", """")    'その後 ' を " に変換。


とゆう方法もあります。

編集 削除
 2008-11-14 02:32:17  No: 140625  IP: 192.*.*.*

Dim J As String
J = """" + "123" + """" + "+" + """" + "456" + """"

↑案外簡単にできました(笑

編集 削除
魔界の仮面弁士  2008-11-14 09:32:57  No: 140626  IP: 192.*.*.*

> Dim J As String
> J = """" + "123" + """" + "+" + """" + "456" + """"
VB での文字列連結については、+ ではなく & の利用が推奨されるので、
  J = """" & "123" & """" & "+" & """" & "456" & """"
とした方が良いかと思います。

また、「123」「+」「456」の部分が固定値であるなら、
  J = """123""+""456"""
と続けて書くこともできますね。


> sQ = Chr(&H22)
> strTerget = sQ & "123" & sQ & "+" & sQ & "456" & sQ
前提知識が無いと、そもそも Chr(&H22) のマジックナンバーの意味がわからないだとか、
あるいは「S = """123"""」のような記述に慣れている、横に長くなってしまうなどの理由から、
上記のような連結記述を、かえって読み難いと感じる人も少なくないようです。

そしてその逆もまた然りで、さらに連続して「s = """"""""」などと書かれてしまうと、
可読性に劣るという事で、「""」を埋め込むのを嫌い、上記のような連結記述を
好む人もいますので、悩ましいところです。

複数人で開発するようなプロジェクトでは、記述方法を統一しておいた方が良いでしょうね。


> J = "'123'+'456'"            'まず " を ' で入力。
> J = Replace(J, "'", """")    'その後 ' を " に変換。
すべての状況下で利用できる方法ではありませんが、この記述法にすると、
コードの可読性を落とさずに済みますね。

編集 削除