- ベストアンサー
プロジェクト間の値の渡し方
projectTEST 上のcommandボタンをclickした場合 private sub commandWork_Click() Shell projectWORK.exe, vbNormalFocus end sub と内容にて別のプロジェクト(projectWORK)を実行しています projectTEST→projectWORK に meno as string の 値を渡したいのですが、可能でしょうか? また、どのようにすれば良いのでしょうか? よろしくお願いいたします
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>複数の変数の値を渡したい場合は、どのようにすればいいのでしょうか? >Shell "projectWORK.exe " & meno1 & meno2, vbNormalFocus あくまでも文字列としてわたるだけなので、それでもいいですけど、通常はmeno1とmeno2をそのままくっつけると境目がわからなくなるのでスペースを入れます。 Shell "projectWORK.exe " & meno1 & " " & meno2, vbNormalFocus
その他の回答 (4)
- taka_tetsu
- ベストアンサー率65% (1020/1553)
> そのあと、projectWORK側でどのように受け取れば良いのでしょうか? > >projectWORKで、変数(1)meno1,変数(2)meno2 として >個々の変数で値を受け取りたいのですが・・・・ 区切り文字が、それぞれのパラメータ中で絶対に使用されないのであれば InStrで探すより、Splitを使用するほうが簡単です。 次の例は、区切りをスペース1文字とした場合です。 Public meno1 Public meno2 Sub Main Dim a As Variant a = Split(Command, " ") meno1 = a(0) meno2 = a(1) End Sub とかですかね。
- saruru
- ベストアンサー率37% (3/8)
例えば。 Private Sub Command1_Click() Dim meno1 As String Dim meno2 As String meno1 = "あ" meno2 = "い" Shell "projectWORK.exe " & meno1 & " " & meno2, vbNormalFocus End Sub とすると。 projectWORK側で、【MsgBox Command()】を実行すると、 あ い と表示されます(これは実際にやってみて理解して下さい) Shell "projectWORK.exe " & meno1 & meno2, vbNormalFocus で起動すると、 あい と表示されてしまう為、どこまでがmeno1の値でどこからがmeno2の値か分からなくなってしまう為、間に半角スペースを入れる訳です。 別に半角スペースでなくても、カンマでもコロンでも何でも構いません。 ご自分でmeno1とmeno2の間を区切る文字列を決めて、projectWORK側でその通りにコーディングすれば出来ます。 私はカンマをよく使いますが、 InStr関数でカンマを探し、1桁目からInStr関数の戻り値-1桁がmeno1の値、InStr関数の戻り値+1以降がmeno2の値となります。
- saruru
- ベストアンサー率37% (3/8)
こんにちは。 > (1)projectTEST プロジェクトには > dim memo as string と宣言 呼び出し元となるプロジェクトでは、このように普通に変数の定義をすれば問題ないですね。 > (2)projectWORK.exe プロジェクトには > ??? > どのように宣言すれば良いのでしょうか? 宣言は必要ありません。 #1の方が書かれている"Command()"はヘルプで調べてみましたか? Shellで、 Shell "projectWORK.exe " & meno, vbNormalFocus のようにprojectWORK.exeを起動した場合、"meno"はコマンドライン引数と言われる引数になります。 "Command()"とは渡されたコマンドライン引数を受け取る為の関数です。 よって、projectWORKの方では変数の宣言は必要ありません。
お礼
ありがとうございます もう1つ教えてください 複数の変数の値を渡したい場合は、どのようにすればいいのでしょうか? Shell "projectWORK.exe " & meno1 & meno2, vbNormalFocus よろしくお願いいたします
- taka_tetsu
- ベストアンサー率65% (1020/1553)
まず、これでは動きません。 >private sub commandWork_Click() > Shell projectWORK.exe, vbNormalFocus >end sub 実行コマンド名は文字列です。 private sub commandWork_Click() Shell "projectWORK.exe", vbNormalFocus end sub で、渡す値が変数の値でしたら、 private sub commandWork_Click() Shell "projectWORK.exe " & meno, vbNormalFocus end sub となります。 projectWORK.exeのほうは、ソース中の任意の場所でCommand()を呼び出せば、引数を受け取ることができます。
お礼
ありがとうございます (1)projectTEST プロジェクトには dim memo as string と宣言 (2)projectWORK.exe プロジェクトには ??? どのように宣言すれば良いのでしょうか? (1)(2)どのように宣言すれば良いのでしょうか? 教えてください
お礼
有難う御座います ご教示下さいました様にしております そのあと、projectWORK側でどのように受け取れば良いのでしょうか? projectWORKで、変数(1)meno1,変数(2)meno2 として 個々の変数で値を受け取りたいのですが・・・・ よろしくお願いいたします