タイトル | : Re^3: VBからエクセルを操作する MSGBOX |
記事No | : 15259 |
投稿日 | : 2011/07/14(Thu) 11:02 |
投稿者 | : 魔界の仮面弁士 |
> これの意味が分からなくって。。。なぜ文字と文字の間に&がある時とない時があるのですか?
文字列中に「"」を渡す場合は " を連記する必要があります。
たとえば、TextBox に「今日の天気は"快晴"です。」と表示する場合には、 Text1.Text = "今日の天気は""快晴""です。" という記述を行う事になります。
この場合、両端の「"」は文字列リテラルを囲む引用符とみなされ、 文字列中の「""」は、一個の「"」として扱われているわけです。
結果として、文字列リテラルには必ず、 偶数個の「"」が含まれていることになります(両端を含む)。
ここまでは大丈夫でしょうか?
次に & ですが、これは文字列を連結するための演算子です(恐らく御存知かと思います)。
これらを踏まえてみると、 > cmd = "CALL(""USER32"", ""MessageBoxA"", ""JJCCJ"", " & CStr(AppExcel.hWnd) > cmd = cmd & ", ""完了しました。"", ""タイトル""," & CStr(vbInformation) & ")" という処理は、 (1)……「CALL("USER32", "MessageBoxA", "JJCCJ", 」 (2)……CStr(AppExcel.hWnd) (3)……「, "完了しました。", "タイトル",」 (4)……CStr(vbInformation) (5)……「)」 という 5 つの文字列を連結しているのだと読み取ることができます。 MsgBox や Debug.Print などで、変数 cmd の中身を確認してみてください。
そして今回のケースでは、 WK_STR = "完了しました。" を使いたいとのことですから、上記 3 の部分の一部を書き換えることになりますね。
|