制御 ModuleやClass・UserFormを一覧から自動インポートする
※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。
※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。
Private Sub Workbook_Open() '**************************************************** 'ModuleやClass・UserFormを一覧から自動インポートする '**************************************************** '本ブックと同じ階層にテキストを保存。 '行毎に記入の事 '全て「ThisWorkbook」に記述のこと Dim TxtName As String TxtName = "bas.txt" '#パラメータ basImport ThisWorkbook.Path & "\" & TxtName End Sub Private Sub basImport(basPath As String) '************************************************** 'ModuleやClass・UserFormを一覧からインポートする '************************************************** '引数 basPath:指定テキストファイル '定数 basFlPath:bas等の格納パス Dim i, str As String, basName As String Dim basFlPath As String basFlPath = "C:\VBAbas\" '#パラメータ DeleteComponents If Dir(basPath) = "" Then MsgBox "Not File! " & basPath Exit Sub End If i = FreeFile Open basPath For Input As #i Do Until EOF(i) Line Input #i, str If Len(str) > 0 Then basName = basFlPath & str If Dir(basName) = "" Then MsgBox "Not Module! " & basName Exit Do Else ImportComponent basName End If End If Loop Close #i ThisWorkbook.Save End Sub Private Sub ImportComponent(strPath As String) '*********************************************** 'ModuleやClass・UserFormをインポートする '*********************************************** ThisWorkbook.VBProject.VBComponents.Import strPath End Sub Private Sub DeleteComponents() '************************************ 'ModuleやClass・UserFormを削除する '************************************ '※自分も削除されます。 'NoDeleteObjTyp:削除非対象コレクション '1 :Module '2 :ClassModule '3 :UserForm '100:Workbook & Sheet Dim Obj As Object, NoDeleteObjTyp As Integer NoDeleteObjTyp = 100 For Each Obj In ThisWorkbook.VBProject.VBComponents If Obj.Type <> NoDeleteObjTyp Then ThisWorkbook.VBProject.VBComponents.Remove Obj End If Next Obj End Sub |