#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'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved