• ベストアンサー

他のフォームから別のフォームのサブルーチンを呼び出す

例えばフォームAからフォームBのCommand1_clickというサブルーチンを呼び出そうとすればどのようにすればいいんでしょうか? 私は Call FormB!Command_click とフォームAに書きましたがうまくいきませんでした

質問者が選んだベストアンサー

  • ベストアンサー
  • mfuku
  • ベストアンサー率50% (173/345)
回答No.1

Command1のClickイベントプロシージャの Private Sub Command1_Click() '(・・処理・・) End sub を Public Sub Command1_Click() '(・・処理・・) End sub に書き換えて下さい(「Private」→「Public」)。 こうすることにより、他のフォームから呼ぶことが可能になります。 ただしこのやり方は奨励しません(※後述) また、呼び出し方も間違ってます。 Call FormB!Command_click ではなく、 Call FormB.Command_click として下さい(「!」→「.」)。 ※自動生成するイベントプロシージャの構文を直接いじるのはあまり奨励しません(特に問題は発生しませんが)。 直接イベントプロシージャを呼ぶのではなく、下記のようにしてみてはいかがでしょう。 ※下記をFormBに記述 Private Sub Command1_Click() Call subCommand1Click End sub Public Sub subCommand1Click() '(・・処理・・) End sub FormAではこのように呼ぶ Call FormB.subCommand1Click

Like_snow
質問者

お礼

ありがとうございました そうですねイベントプロシージャをいじりすぎるのはよくないと思いました 大変役に立ちました

関連するQ&A

専門家に質問してみよう