|
▼まこさん さん:
こんばんは。
>ご覧いただきありがとうございます。
>今日2回目の質問です。
>
>例えばここにBOOK1〜BOOK100の100個のブックがあります。
>VBAのモジュールにバグがみつかり、修正用パッチを一気にあててしまいたいのですが。
>何か良い方法がありましたら、ご教授ください。
>ちなみに、私が今やっている方法は、1つずつブックを開き、VISUAL BASIC EDITORからバグがあるモジュールをいったん削除し、パッチをあてたモジュールをインポートさせる方法です。1つ1つ開いてやらないといけないので時間がかかってしょうがありません。
>
>よろしくお願いします。
モジュールの削除は、
'================================================================
Sub sample2()
MsgBox delete_mdl(ThisWorkbook, "module2")
End Sub
'==================================================================
Function delete_mdl(wk As Workbook, compnm As String) As Long
'指定されたブックの指定されたモジュールを削除する
'Input wk---インポート対象ブックオブジェクト
' compnm ---削除するモジュール名
On Error Resume Next
delete_mdl = 0
With wk.VBProject
.VBComponents.Remove .VBComponents(compnm)
End With
Delete.mdl = Err.Number
End Function
インポートは、
'=================================================================
Sub sample1()
If import_mdl(ThisWorkbook, "D:\My Documents\TESTエリア\Module1.bas") = 0 Then
MsgBox "インポート成功"
End If
End Sub
'=======================================================================
Function import_mdl(wk As Workbook, import_flnm As String) As Long
'指定されたブックに指定されたインポートファイルをインポートする
'Input wk---インポート対象ブックオブジェクト
' inport_flnm ---インポートファイルのブルパス
On Error Resume Next
import_mdl = 0
wk.VBProject.VBComponents.Import import_flnm
If Err.Number <> 0 Then
import_mdl = Err.Number
End If
End Function
上記の二つの部品となるFunctionがあれば、
後は、メインプロシジャーでぐるぐる回せば(ループ処理)それらしく
出来るかと思いますが・・・、いかがですか?
出来上がったら、私もほしいですねえ・・・。
|
|