tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^3: VBからエクセルを操作する MSGBOX
投稿日: 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 の部分の一部を書き換えることになりますね。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。