
No.1ベストアンサー
- 回答日時:
自動的に作られるイベントプロシージャは「Private」指定ですから、
Formの外からは参照できません。
「Public」に変更すれば、外部から参照可能になります。
#「イベントプロシージャを外部から直接呼び出す」という
#プログラムが良いかどうかの議論は止めておきます。
ありがとうございます。
できました。
Form1に
Private Sub Command1_Click()
Form2.Show
Call Form2.Command1_Click
End Sub
Form2に
Public Sub Command1_Click()
Command1.Enabled = False
End Sub
と入れて「他のモジュールのプロシージャの呼び出したい。」が確認できました。
初心者の質問で申し訳ないのですが、
”#「イベントプロシージャを外部から直接呼び出す」という
#プログラムが良いかどうかの議論は止めておきます。”
とコメントいただきましたが、フォーム間でプロシージャのやり取りをするには本来どういった方法で行うのがいいでしょうか?
もしよろしければ、ご助言お願いいたします。
No.4
- 回答日時:
#1です。
> フォーム間でプロシージャのやり取りをするには本来どういった
> 方法で行うのがいいでしょうか?
プロシージャのやり取り(呼び出し)自体は構わないと思います。
但し、本来Priveteであるべき(Form1の内部処理である)「イベントプロシージャ」を直接呼び出すのはちょっと・・・
という事です。
これは、#2さんが言われている様に、
他の画面からも行いたい処理は、別に「公開用(共通処理)」として用意しておくのが良いと思います。
Form1に依存する動作が多い(Form1の複数のコントロールのプロパティ等を参照・操作するとか)なら、Form1内に用意し、
それほど依存しないなら、標準モジュールで用意します。
余談ですが、『「CommanButtonのClickイベント」を発生させる』事に限定するなら、
Form1.Comman1.Value=True
を実行することで、発生させることも可能です。
ありがとうございます。
あくまで例として今回CommandButtonを用いていましたが、
プロシージャのやり取りは使われているんですね。
Form1.Comman1.Value=True
という使い方も知りませんでした。
今後活用させていただきます。
No.3
- 回答日時:
回答というより、確認に近いかもしれませんがForm1、Form2はそれぞれクラス名、インスタンス名のどちらでしょうか。
質問の内容からすれば、なんとなくForm1、Form2がクラスのように感じるのですが。もしそうでなければ聞き流してください。Form1、Form2をクラスと考えているなら、Form2.Command1_Clickというような呼び出しは、共有メソッドにしか使用することはできません。
ただし、Command1_Clickはおそらくハンドラなので、共有メソッドではないはずです。
たとえば、
Class Form1
Dim f2 as Form2
Sub asdf()
f2.Command1_Click(f2.Command1,new System.Eventargs())
End Sub
End Class
というような構造になっていなければ呼び出せません。
この回答への補足
すみません。初心者であまりよくわかっていないです。
VBを立ち上げて最初にあらわれるForm1というものを指して表現しているのですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- Excel(エクセル) ハイパーリンクの削除について 2 2022/11/10 07:32
このQ&Aを見た人はこんなQ&Aも見ています
-
private subモジュールを他のモジュールから呼び出して使う方法を教えてください(-.-)
Visual Basic(VBA)
-
他のフォームから別のフォームのサブルーチンを呼び出す
Visual Basic(VBA)
-
VBのフォームモジュールと標準モジュールの使い分け
Visual Basic(VBA)
-
-
4
VB.netで標準モジュールからフォームを呼び出す
Visual Basic(VBA)
-
5
VB6で開発中…標準モジュール間での関数の呼び出し方は?
Visual Basic(VBA)
-
6
【VB6.0】 あるフォームから他のフォームへ値を受け渡したい
Visual Basic(VBA)
-
7
VB6 配列を初期化したい
Visual Basic(VBA)
-
8
VB.NET2005 TextBox 高さ(Height) 変更
Visual Basic(VBA)
-
9
VB6のプロジェクトロードエラーについて
Visual Basic(VBA)
-
10
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
11
Form_Load と Form_Activate のタイミング
Visual Basic(VBA)
-
12
VBからEXCELのセルの値を取得する方法
Visual Basic(VBA)
-
13
VB.NETで他のプロジェクトで作成したフォームを使う方法
Visual Basic(VBA)
-
14
【VB】コンボボックスにデータベースから取り出した値を入れたい
Visual Basic(VBA)
-
15
Accessで値がnullの場合は計算せずにnullをかえす方法
Access(アクセス)
-
16
VB6でユーザー定義型がNothingかどうか調べるには?
Visual Basic(VBA)
-
17
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
18
SPREAD(GrapeCity)のセルにフォーカスを設定するにはどうしたらいいのでしょうか?
Visual Basic(VBA)
-
19
VB6.0で、DLLを動的に参照したい
Visual Basic(VBA)
-
20
VB6とVB.NETでNullの扱いが違う?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
共通モジュールでDBへの接続と...
-
[VBA] Classから他のClassを呼...
-
他のモジュールのプロシージャ...
-
用語の意味の違いを教えてくだ...
-
VB.NETにて文字列で指定した関...
-
WPFでCanvas の子要素にアクセ...
-
VB.netで、動的な型変換を行い...
-
worksheetFunctionクラスのVloo...
-
実行時エラー 438になった時の...
-
VBA(エクセル)で自動的にボタン...
-
「Columns("A:C")」の列文字を...
-
ユーザーフォームを表示中にシ...
-
VBA シートのボタン名を変更し...
-
ユーザーフォームに日付を表示...
-
パソコンへの「Dropbox...
-
エクセルVBAでオプションボタン...
-
EXCEL/VBAで、自分のPCだけエラ...
-
VBAがブレークモードになっ...
-
ウォッチ式の文字数制限について
-
ExcelVBAのユーザーフォームの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
共通モジュールでDBへの接続と...
-
[VBA] Classから他のClassを呼...
-
他のモジュールのプロシージャ...
-
VB.netで、動的な型変換を行い...
-
VB6で外部から静的アクセスが可...
-
Excel vbaで複数のテキストボッ...
-
WPFでCanvas の子要素にアクセ...
-
VBAで、Functionを、クラスモジュール...
-
Python クラスとモジュールの...
-
C#でのWebRequestでのPOSTについて
-
コンポーネント指向って、どの...
-
C# Process.Start で標準入力
-
用語の意味の違いを教えてくだ...
-
VBA クラスにプロパティが実装...
-
'StructLayout' の仕様について
-
VBA オブジェクト追加
-
現在使用しているJAVAファイル...
-
ジェネリクスについて
-
VB.NETにて文字列で指定した関...
-
Form2の変数をForm1に渡す方法...
おすすめ情報