• 締切済み

引数

VB の引数について prA.vbp(プロジェクト) の frAA.frx(フォーム) で  private sub comm_click()   shell "c:\work\try\prB.exe",vbNormalFocus  end sub prB.vbp(プロジェクト) の 標準モジュール内で public sub Main()  [password...]  frBB.show end sub ご質問内容で御座いますが  frAA.frx(フォーム) で入力されたパスワードを  "c:\work\try\prB.exe" を実行する時に引数として  prB.vbp(プロジェクト) の 標準モジュール public sub Main() に   引数を渡したいのですが、  prA の frAA , prB の Main でどのように記述すれば いいのでしょうか 以上 宜しくお願い申し上げます

  • nao0
  • お礼率10% (50/483)

みんなの回答

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.6

区切り文字を使用したらよいと思います。 サンプルは"_"を使用しています。 private sub comm_click()   shell "c:\work\try\prB.exe para1_para2",vbNormalFocus end sub public Sub main()   Dim strWk  As String   Dim varWk  As Variant   Dim i    As Integer   strWk = Command   If strWk = "" Then     msgbox "パラメータ無し"   Else     varWk = Split(strWk, "_")     For i = LBound(varWk) To UBound(varWk)       msgbox varWk(i)     Next i   End If End Sub

回答No.5

こんにちは どうしても引数でないとダメですか? 別exe(プロジェクト)にデータ渡す時、私の場合は ファイル渡しにしています。 当然パスワードなので作ったファイルは削除する必要がありますけどね。 ファイルにもいろいろありますが、INIファイルに書き出すことが多いです こういう方法もすでに検討されていらっしゃったのなら ごめんなさい。

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.4

あくまで一つの方法としてですが、 "c:\work\try\prB.exe " & PASSWORD で実行し、 prB.exeの方では VBのCommand 関数でPASSWORDの部分を 受け取ることができます。 Command関数はMSDNライブラリに使用例も でているので参考にしてみてください。

nao0
質問者

補足

command 関数で試みているのですが うまく出来ません 2つの引数を受け取るには、どのように記述すればいいのでしょうか? 教えて頂けませんでしょうか? 宜しくお願い申し上げます

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.3
回答No.2

にゃんこが初めてC言語に出会ったとき パラメータいっぱい渡せるのに戻り値が1っ種類って感想だったにゃん グローバル宣言してる変数にどんな値でも返せるって気が付くまで ちょこっと時間かかったにゃはは

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

private sub comm_click()   shell "c:\work\try\prB.exe test",vbNormalFocus end sub public sub main   msgbox command end sub http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vblr7/html/vafctcommand.asp

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=204626

関連するQ&A

  • VB.netで標準モジュールからフォームを呼び出す

    お世話になります。 標準モジュールから以下のようにフォームを呼び出しているんですがうまく表示されません。 どこが悪いんですか? 標準モジュール内----------------------   Public Sub Main()     Dim frm1 As New Form1     frm1.Show()   End Sub

  • VBAでユーザーフォームに引数を渡したい

    標準モジュールからユーザーフォームに引数を渡し、フォーム上で表示させたいのですが、方法がわかりません。 可能でしょうか?教えてください。

  • 【vba】フォームに書いてあるコードをステップインすることは不可能でしょうか?

    エクセルもアクセスも同じなんですが フォームのモジュール?に書いてあるコードを 「F8」のステップインすることは不可能でしょうか? 標準モジュールなら 「F8」で少しずつVBAコードを試すことが可能なのですが、 フォームに書いてあるほうはできません。 ひとつひとつ試したいので Private Sub コマンド1_Click() Call test End Sub とフォームのところに書き、 標準モジュールには Sub test() ・・・ End Sub と書いて 標準モジュールのほうを F8で少しずつデバッグしています。 こうするしかないのでしょうか? よろしくお願いします。

  • 標準モジュールにpublicで宣言するしかない?

    フォームモジュールと標準モジュールで同じ変数を使って値を行き来したい場合、 標準モジュールにpublicで宣言するしかないのでしょうか? 【フォームモジュール】 Private Sub cmd_コマンド0_Click() test = "aaa" Call 標準モジュールtest End Sub 【標準モジュール】 Public test As String Sub 標準モジュールtest() MsgBox test End Sub でいいのですか?

  • 同じマクロ名でも、違うモジュールならエラーにならな

    同じマクロ名でも、違うモジュールならエラーにならない? エクセルVBAについてご教授ください。 標準モジュールに ――――――――― Option Explicit Sub CommandButton1_Click() MsgBox "" End Sub Sub CommandButton1_Click() MsgBox "" End Sub ――――――――― と同じマクロ名を2つ作ったら、コンパイルエラーになりますが、 上記のコードは一度消して、フォームモジュールに ――――――――― Private Sub CommandButton1_Click() MsgBox "" End Sub ――――――――― を一つ作り、 標準モジュールに ――――――――― Sub CommandButton1_Click() MsgBox "" End Sub ――――――――― を一つ作った場合は、エラーにならずにマクロを実行できました。 これは、フォームモジュールがPrivate Subだからでしょうか? フォームモジュールに1つ、 標準モジュールに1つ なら同じマクロ名を使っても、エラーにならないという事でしょうか? よろしくお願いします。

  • subプロシージャーは標準モジュールではなくフォームのコードを書く部分

    subプロシージャーは標準モジュールではなくフォームのコードを書く部分に書いても問題ないのでしょうか? エクセルにVBAでフォームを挿入し、 「Private Sub UserForm_Initialize()」 などのフォームのモジュールに、 Sub test() MsgBox "あああ" End Sub という標準モジュールに書くべきのsubプロシージャーを書いてもなにもエラーにならないし正常に動きます。 subプロシージャーは標準モジュールではなくフォームのコードを書く部分に書いても問題ないのでしょうか? それともエラーにならなくても標準モジュールに書いた方がいいですか?

  • フォームモジュール内に サブプロシージャー

    vbaでフォームモジュール内に Sub test() End Sub のように、サブプロシージャーを作るのはよくないですか? そのフォームモジュールに関係のあるサブプロシージャーの場合です。 サブプロシージャーは標準モジュールに作った方が良いのか、 わからないので教えてください。

  • VBとVBAのコードの違い プロシージャー呼び出し方法

    何度かお世話になっておりおります 毎回アドバイスありがとうございます 早速なのですがまた躓いてしまいアドバイスお願いします。 ~質問内容~ 標準モジュールからフォームのプロシージャーを呼び出す エラー内容 オブジェクトが必要である       オブジェクト修飾が必要など 出てきました オブジェクト修飾 というのが もう理解出来ず 本当にスタートの時点ではありますが アドバイスお願いします VBのコード 標準モジュール Sub Main() MainForm.Initialize End Sub フォームのコード Public Sub initialize()  ”コード内容”  End Sub ↑上記で記入しました フォームで宣言されているInitialize を呼び出したいのですが VBでは このままで出来るはずなのですが VBAでは オブジェクト修飾が必要です CALL をつけても エラーのままでした 少し質問がわかりにくくなってしまいましたが 標準モジュールから フォームのプロシージャーを呼び出すには なんと入れれば宜しいでしょうか? アドバイスお願いします

  • フォームのイベントを標準モジュールから呼び出す

    フォームのイベントを標準モジュールから呼び出す事は出来ないのでしょうか? ちなみにアクセスです。 例えば、 Private Sub Form_Load() MsgBox "test" End Sub というのはフォームを開いたときにしか発生しないですよね。 でもフォームを開いている状態でForm_Loadと全く同じ事をしてほしい時は どうすればいいですか? 標準モジュールで Sub a() Call Form_フォーム1.Form_Load End Sub としてみましたが、メソッドまたはデータ メンバが見つかりません。 (Error 461)になりました。 MsgBox "test" だけなら、 Sub a() MsgBox "test" End Sub にすりゃいいじゃん!って思われがちですが、 実際はForm_Loadイベントにはたくさんのコードが書かれています。 標準モジュールからイベントの呼び出しを教えてください。

  • VisibleとOpenFormは意味が同じ?

    データベースにフォームが1つあります。 標準モジュールに Sub Visible() Form_フォーム1.Visible = True End Sub Sub OpenForm() DoCmd.OpenForm "フォーム1" End Sub を作り、どちらも実行させても同じ動きをします。(フォームが開きます) この二つは同じ動きをすると思っていいのでしょうか?