#450 別フォームのボタンの処理を実行するには? フォーム、VBA

フォームに配置されたコマンドボタンがクリックされたときの処理は、そのボタンのクリック時イベントプロシージャにコードを記述するだけです。しかし、一般的な手順で作ったそのイベントプロシージャはそのフォームモジュールのPrivateなプロシージャとなるため、別のフォームや標準モジュールから呼び出すことはできません。そこで、次のようなちょっとした書き換えを加えることによって、別のフォームや標準モジュールからも呼び出せるようになります。

それには、プロシージャの「Private」の宣言を「Public」に書き換えます
通常のクリック時イベントプロシージャ:

Private Sub コマンド0_Click()
  MsgBox "クリックされました"
End Sub

書き換え後の同イベントプロシージャ:

Public Sub コマンド0_Click()
  MsgBox "クリックされました"
End Sub


ただし、同じフォーム内ならボタンのクリック操作によって自動的にそのイベントプロシージャが呼び出されますので、あえてそれを呼び出すためのコードは必要ないのですが、別のフォームや標準モジュールから呼び出す場合には、特定の書き方で呼び出す必要があります。それは、次のような書き方になります。
Form_フォーム名.プロシージャ名
「Form_フォーム名」の部分は、フォームのクラスモジュール名になります。たとえば、フォーム「フォーム1」に書かれたイベントプロシージャを呼び出す場合は次のように記述します。
Form_フォーム1.コマンド0_Click
| Index | Prev | Next |

この情報は参考になりましたか?、問題は解決しましたか?、もしまだなら......
T'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします


Copyright © T'sWare All rights reserved