45 | テキストボックスのイベントプロシージャを削除する | ||
特定のモジュールから一部のコードを削除するには、VBComponentの「CodeModule」オブジェクトの「DeleteLines」メソッドを使います。 このメソッドでは、1つめの引数に「削除する先頭の行番号」、2つめに「削除する行数」を指定します。 引数の値によっては任意の箇所の任意の行数を削除できますが、イベントプロシージャのように削除対象のプロシージャ名が決まっている場合には、その2つの引数にそれぞれ次のプロパティを利用することができます。 いずれも1つめの引数に「プロシージャ名」、一般的なSub/Functionプロシージャであれば2つめの引数には固定で「0」を指定することで、各値を取得できます。
プログラム
Sub SampleCode_45() 'テキストボックスのイベントプロシージャを削除する Dim vbcmp As Object Dim intStartRow As Integer Dim intDelRows As Integer '削除するプロシージャ名 Const cstrDelProcName = "テキスト1_AfterUpdate" 'フォーム2のモジュールを開く Set vbcmp = VBE.ActiveVBProject.VBComponents("Form_フォーム2") With vbcmp.CodeModule '削除するプロシージャの先頭行番号を取得 intStartRow = .ProcStartLine(cstrDelProcName, 0) '削除するプロシージャの行数を取得 intDelRows = .ProcCountLines(cstrDelProcName, 0) '先頭行から行数分を削除 .DeleteLines intStartRow, intDelRows End With End Sub 実行例
■実行前■実行後 |
|||
|
Copyright © T'sWare All rights reserved |