Excelスキルアップコレクション
           〜 Something U Want 〜


Google  

WWW を検索
Excelスキルアップコレクション内 を検索
 @     Top  >     Excelプロフェッショナルエンジニアテクニック Topics  >     (07) Excelブックに存在する全モジュールを一括エクスポートする

 
(07) Excelブックに存在する全モジュールを一括エクスポートする

 VBAProjectに大量のモジュールを含むExcelブックを想定します。このモジュール群を全てエクスポートする必要がある場合、通常はマウス操作によって一つ一つエクスポートするしかありません。これはかなり面倒臭い作業です。

 全モジュールを一括でエクスポートする機能の実装方法を紹介します。

 Visual Baisc プロジェクトへのアクセスを許可します。

  「(04) Visual Baisc プロジェクトへのアクセスを許可する方法」

 下記サンプルコードをModule1に記載して下さい。
<Module1>

 1行目:  Public Sub Sample_ExportAllModule_01()
 2行目:  
 3行目:      ' ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
 4行目:      ' 参照設定:
 5行目:      ' 「Microsoft Visual Basic for Application Extensibility」
 6行目:      ' ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
 7行目:      
 8行目:      ' このブックのVBProjectをオブジェクト変数に格納する。
 9行目:      Dim Obj As VBIDE.VBProject
10行目:      Set Obj = ThisWorkbook.VBProject
11行目:  
12行目:      ' VBProjectに存在するコンポーネント数を変数に格納する。
13行目:      Dim CompCnt As Long
14行目:      CompCnt = Obj.VBComponents.Count
15行目:  
16行目:      ' エクスポート先のフォルダを決める。
17行目:      Dim ExpDir As String
18行目:      ExpDir = "C:\VBAModuleFile"
19行目:  
20行目:      ' VBProjectに存在するコンポーネントを一つずつ参照する。
21行目:      Dim lp As Long
22行目:      For lp = 1 To CompCnt
23行目:          ' エクスポートするファイルの拡張子を決定する。
24行目:          Dim str As String
25行目:          Select Case Obj.VBComponents(lp).Type
26行目:              Case 1
27行目:                  str = ".bas"
28行目:              Case 2
29行目:                  str = ".frm"
30行目:              Case Else
31行目:                  str = ".cls"
32行目:          End Select
33行目:          
34行目:          ' エクスポートを実行する。
35行目:          With Obj.VBComponents(lp)
36行目:              .Export (ExpDir & "\" & .Name & str)
37行目:          End With
38行目:      Next
39行目:  
40行目:      ' オブジェクトを破棄する。
41行目:      Set Obj = Nothing
42行目:  
43行目:  End Sub
 ここで利用しているのはVBComponentsコレクションのExportメソッドです。
Export(ファイル名){ファイル名}で指定した先へエクスポートする。

 このサンプルコードを実行すると、エクスポート先に指定したフォルダ配下に、全モジュールのエクスポートファイルが作成されます。
  
ページの先頭へ