- 締切済み
引数
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)
- Visual Basic
- 回答数6
- ありがとう数2
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- TAGOSAKU7
- ベストアンサー率65% (276/422)
区切り文字を使用したらよいと思います。 サンプルは"_"を使用しています。 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
- ats8181oyaji
- ベストアンサー率38% (94/244)
こんにちは どうしても引数でないとダメですか? 別exe(プロジェクト)にデータ渡す時、私の場合は ファイル渡しにしています。 当然パスワードなので作ったファイルは削除する必要がありますけどね。 ファイルにもいろいろありますが、INIファイルに書き出すことが多いです こういう方法もすでに検討されていらっしゃったのなら ごめんなさい。
- sha-girl
- ベストアンサー率52% (430/816)
あくまで一つの方法としてですが、 "c:\work\try\prB.exe " & PASSWORD で実行し、 prB.exeの方では VBのCommand 関数でPASSWORDの部分を 受け取ることができます。 Command関数はMSDNライブラリに使用例も でているので参考にしてみてください。
- TAGOSAKU7
- ベストアンサー率65% (276/422)
- nyannnyannko
- ベストアンサー率15% (14/90)
にゃんこが初めてC言語に出会ったとき パラメータいっぱい渡せるのに戻り値が1っ種類って感想だったにゃん グローバル宣言してる変数にどんな値でも返せるって気が付くまで ちょこっと時間かかったにゃはは
- TAGOSAKU7
- ベストアンサー率65% (276/422)
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
関連するQ&A
- VB.netで標準モジュールからフォームを呼び出す
お世話になります。 標準モジュールから以下のようにフォームを呼び出しているんですがうまく表示されません。 どこが悪いんですか? 標準モジュール内---------------------- Public Sub Main() Dim frm1 As New Form1 frm1.Show() End Sub
- ベストアンサー
- Visual Basic
- VBAでユーザーフォームに引数を渡したい
標準モジュールからユーザーフォームに引数を渡し、フォーム上で表示させたいのですが、方法がわかりません。 可能でしょうか?教えてください。
- ベストアンサー
- Visual Basic
- 【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 のように、サブプロシージャーを作るのはよくないですか? そのフォームモジュールに関係のあるサブプロシージャーの場合です。 サブプロシージャーは標準モジュールに作った方が良いのか、 わからないので教えてください。
- ベストアンサー
- Excel(エクセル)
- VBとVBAのコードの違い プロシージャー呼び出し方法
何度かお世話になっておりおります 毎回アドバイスありがとうございます 早速なのですがまた躓いてしまいアドバイスお願いします。 ~質問内容~ 標準モジュールからフォームのプロシージャーを呼び出す エラー内容 オブジェクトが必要である オブジェクト修飾が必要など 出てきました オブジェクト修飾 というのが もう理解出来ず 本当にスタートの時点ではありますが アドバイスお願いします VBのコード 標準モジュール Sub Main() MainForm.Initialize End Sub フォームのコード Public Sub initialize() ”コード内容” End Sub ↑上記で記入しました フォームで宣言されているInitialize を呼び出したいのですが VBでは このままで出来るはずなのですが VBAでは オブジェクト修飾が必要です CALL をつけても エラーのままでした 少し質問がわかりにくくなってしまいましたが 標準モジュールから フォームのプロシージャーを呼び出すには なんと入れれば宜しいでしょうか? アドバイスお願いします
- 締切済み
- Visual Basic
- フォームのイベントを標準モジュールから呼び出す
フォームのイベントを標準モジュールから呼び出す事は出来ないのでしょうか? ちなみにアクセスです。 例えば、 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 を作り、どちらも実行させても同じ動きをします。(フォームが開きます) この二つは同じ動きをすると思っていいのでしょうか?
- ベストアンサー
- オフィス系ソフト
補足
command 関数で試みているのですが うまく出来ません 2つの引数を受け取るには、どのように記述すればいいのでしょうか? 教えて頂けませんでしょうか? 宜しくお願い申し上げます