44 | テキストボックスのイベントプロシージャを挿入する | ||
特定のモジュールに対してプログラムからコードを挿入するには、VBComponentの「CodeModule」オブジェクトの「InsertLines」メソッドを使います。 イベントプロシージャもふつうのコードですのでInsertLinesメソッドで挿入できますが、”対象となるコントロール名”や”イベント名”、”そのイベントに合わせた引数”を自分で組み立てて指定するという点に注意します。InsertLinesメソッドはあくまで文字列を挿入するもので、イベントプロシージャの枠を生成するものではありません(※注)。 またそのため、プロシージャの終わりを示す「End Sub」も挿入するようにします。もちろんその間に任意のコードを含めることもできます。
注:VBComponentではなくAccessの「Module」オブジェクトの「CreateEventProc」メソッドを使うことで、当該イベントプロシージャの引数もいっしょに生成することができます。 プログラム
Sub SampleCode_44() 'テキストボックスのイベントプロシージャを挿入する Dim vbcmp As Object Dim intInsRow As Integer 'フォーム2のモジュールを開く Set vbcmp = VBE.ActiveVBProject.VBComponents("Form_フォーム2") With vbcmp.CodeModule '現在のモジュールの最終行の2行下を挿入先とする intInsRow = .CountOfLines + 2 'イベントプロシージャを挿入 .InsertLines intInsRow, "Private Sub テキスト1_AfterUpdate()" & vbCrLf & _ vbCrLf & _ "End Sub" End With End Sub 実行例
■実行前■実行後 |
|||
|
Copyright © T'sWare All rights reserved |