[VBA] ダブルクォートを含む文字列を変数に取り込む方法

このQ&Aのポイント
  • VBAでダブルクォートを含む文字列を変数に取り込む方法について教えてください。通常の文字列とは異なり、エスケープが必要なのでしょうか?具体的な例文も教えていただけると助かります。
  • VBAの変数にダブルクォートを含む文字列を取り込む方法について質問です。エスケープの方法がわからず困っています。具体的な例文や記述方法を教えていただけますか?
  • VBAで変数にダブルクォートを含む文字列を取り込む方法について教えてください。通常の文字列とは異なる記述方法が必要なのか不明です。具体的な例文を教えていただけると嬉しいです。
回答を見る
  • ベストアンサー

[VBA] "と,を含む文字列を変数に取り込む

こちらの識者の方々にはいつもお世話になっています。 VBAの質問です。 環境は下記になります。 OS=windows7 pro 64bit Office=Excel2010(14.0.7128.5000) ・やりたいこと "aaa、bbb、ccc","2016/07/01","2016/07/01" 上記文字列を変数tmpに取り込む場合どのように記述すればよいでしょうか? ダブルクォートを含む場合はさらにダブルクォートを二つ並べてエスケープする。とあったので、 tmp="""aaa、bbb、ccc","2016/07/01","2016/07/01""" としたのですが通りませんでした。 このような場合の例文を教えていただけますでしょうか。 変数tmpはstring型で宣言しています。 質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • 8shi8
  • ベストアンサー率32% (90/274)
回答No.1

以下のように設定します tmp="""aaa、bbb、ccc"",""2016/07/01"",""2016/07/01""" 最初の"""は"が文字列開始の”で次の""が文字列中の"になります 同様にその後も文字列中の"を""に変更します

rihitomo
質問者

お礼

できました! ありがとうございます!

関連するQ&A

  • for文の中の参照変数について

    以下のように、 for文(例えば、10回ループ)の中で参照変数を宣言した場合、 1回目のループが終わったタイミングで、cccという変数はメモリ上から削除されるのでしょうか? 削除されないとしたら一つのメソッド内で同じ変数名が繰り返し宣言されることになるので 毎回削除されているのだとは思いますが。。 -------------------- method() { for(AAA aaa : bbb){ CCC ccc= null; } } -------------------- 教えて下さい。

    • ベストアンサー
    • Java
  • 文字列をスカラー変数として認識させるには?

    for文で合成して出来た文字列をスカラー変数として認識させたいのですが、 どうすればよいのでしょうか? ################################################# $qty1 = 'aaa'; $qty2 = 'bbb'; $qty3 = 'ccc'; $qty4 = 'ddd'; $qty5 = 'eee'; $qty6 = 'fff'; $qty7 = 'ggg'; $qty8 = 'hhh'; $qty9 = 'iii'; for ($i=1; $i<10; $i++){    $tmp = '$qty'.$i;    print "$tmp\n"; } ################################################# 自分としては、「aaa、bbb、ccc.....」のように、代入された値の羅列としてプリントされて欲しいのですが、 実際は「$qty1、$qty2、$qty3......」として、そのまま表示されてしまいます。 ご教示お願い致します。

    • ベストアンサー
    • Perl
  • VBAでワイルドカードを使った文字列検索

    初めて投稿いたします。 環境は、WinXP Access2000 下記のVBAモジュールで、文字列検索がヒットしません。 数字の比較でヒットするのはナゼでしょうか? ちなみに、変数に導入したのは、全角半角どちらも入れてみました。 この疑問・・・どなたか解決お願いします。 Sub TEST() Dim AAA As String Dim BBB As String Dim YYY As String AAA = "0" BBB = "2" YYY = AAA & BBB Select Case YYY Case "0*" MsgBox "ココを通り過ぎないで!" Case "15" MsgBox "やったね" Case Is > 0 MsgBox "なぜかココでヒットします??" End Select End Sub

  • Perlで変数中のエスケープされた特殊文字を展開

    Perlで、変数に既に格納されているエスケープされた特殊文字を、もとの文字に展開するには どのようにしたらよいでしょうか。 つまり、\t という値で格納されているのをタブ文字にしたり、\\ という値であれば\の一文字に するという事です。 ダブルクォートで定義すれば展開されると思いましたが、展開は変数の代入時に行われるだけで、 既に変数中にエスケープされて入っているものはダブルクォートを使い変数を囲んだりしても展開されません。 下記は簡単な例でやろうとしてる事を示したものです。 add変数に\tというタブを意味するエスケープされた特殊文字を含んでいるとして、その\tを タブとして展開し、abc defのようにさせたいのですが、abc\tdefと入ってしまいます。 $ cat unescape.pl #!/bin/perl $add = '\tdef'; #シングルクォートで代入すると、もちろんエスケープされたまま代入される #$add = "\tdef"; #ダブルクォートで代入すると代入時にタブへ展開される #$add = $ARGV[0]; #本当はAGRVからエスケープ特殊文字を含んだ文字列を取りたい。ARGVから代入すると、シングルクォートの時のようにそのまま代入される $tgt = 'abc'; print "add: " . $add , "\n"; print "before: " . $tgt . "\n"; $tgt .= "$add"; #既にエスケープされた形で代入されているものを、ダブルクォートで囲んで使っても展開されない print "after: " . $tgt . "\n"; $ perl unescape.pl add: \tdef before: abc after: abc\tdef

    • ベストアンサー
    • Perl
  • 文字列のメンバ変数を外部変数のように扱いたい

    済みません。質問なのですが、 メンバ変数を外部変数のように扱うにはどうしたらよいのでしょうか? int型などの場合、 class test{ static const int a; }; const int test::a = 10; とすればよいですよね? これをcharの配列にして class test{ static char a[7][32]; }; char test::a[0] = "test"; とすると サイズが0の配列を割り当てまたは宣言しようとしました というコンパイルエラーがでてしまいます…。 多次元配列の場合はstatic変数としてもてないのでしょうか? char** として宣言してもどこでnewを行えばよいか解りません。 コンストラクタの中で行えば そこでstaticではなくなってしまいますし…。 後、できればstringクラスの配列で持ちたいのですが #include <string> class test{ static string test[7]; }; string test::test[0] = "aaa"; なんてことができますでしょうか? 質問内容が解りにくいかも知れませんが どうか教えてください。 宜しくお願いいたします。

  • Batにおける変数について

    はじめまして。 どなたかご教授願います。 @echo off set AAA=( +8000896 - +8000551 ) = 345 set BBB=28 set CCC1=%AAA:~28% #set CCC2=%AAA:~"%BBB%"% #行の部分の変数定義が行えません。 "や`、\を組み合わせてみましたが CCC1のような 結果にはならず悩んでおります。 お手数ですが、ご回答の程お願い致します。

  • strcmp関数などでの複数の文字列の比較

    以下の例はランダムなiの値で文字列にアクセスして その文字列がどの文字列であるかを判定しているプログラムです。 char *string[] = {   "aaa",   "bbb",   "ccc", } ; int i = rand() % 3; if ( strcmp( string[ i ], "aaa" ) == 0 ) {   printf("aaaです"); } if ( strcmp( string[ i ], "bbb" ) == 0 ) {   printf("bbbです"); } if ( strcmp( string[ i ], "ccc" ) == 0 ) {   printf("cccです"); } するとこのようにif文の羅列になってしまいます。 (strstr関数を使う場合などでも同じような感じです。) 複数の文字列を判定する場合などにもっと良い手法は無いでしょうか?

  • 文字列を配列定義に使用するには

    文字列を配列の定義に使用したいのですが、可能でしょうか? 具体的には以下のような内容です。  $AAA = array("name"=>"山田","val"=>"10"); とすると変数$AAAは配列になります。  $BBB = 'array("name"=>"佐藤","val"=>"20")'; とすると変数$BBBは文字列になります。  $CCC = $BBB; と変数$CCCに代入した場合に、 変数$CCCを配列として認識させたいです。 つまり  print $CCC[name]; //佐藤  print $CCC[val]; //20 というように出力させたいのですが、 根本的に可能なのでしょうか…? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • エクセルVBA 配列の書き方とセルへの一括表示方法

    エクセルのVBAで 下記のようなプログラムを作成しています。 1行目はタイトル行で E列が空白になるまで、 各行のE列~H列の値を変数に入れて、 最後に一括で別の列・行にそれぞれの値を表示・書込したいと思ってますが、 どうもVBAは初めてでよくわかりません。 Dim aaa As String Dim bbb As String Dim ccc As String Dim eee As Double intRow = 2 Do Until Cells(intRow, 5).Value = "" aaa = Cells(intRow, 5).Value) bbb = Cells(intRow, 6).Value) ccc = Cells(intRow, 7).Value) ddd = Cells(intRow, 8).Value) intRow = intRow + 1 Loop aaaの各変数を2行目のA1~intRowまで bbbの各変数を2行目のB1~intRowまで cccの各変数を2行目のC1~intRowまで dddの各変数を2行目のD1~intRowまで セルに一括して表示したいのです。 配列の書き方と、セルの範囲に表示・書込する方法を どうかご教示下さい。お願いいたします。

  • 変数の中身をある文字列を基準として分解したいです。

    変数の中身をある文字列を基準として分解したいです。 phpで変数の中身をある文字列を基準として分解したいです。 例として $value = "aaa,bbb,ccc,ddd,eee,"; $valeの中身を","を基準として取り出したいのですが可能でしょうか? 1件目:aaa 2件目:bbb 3件目:ccc 4件目:ddd 5件目:eee のような感じで画面に表示したいです。 ご教示、よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう