Created
October 30, 2012 08:09
-
-
Save xnrghzjh/3978902 to your computer and use it in GitHub Desktop.
Excelのモジュールをエクスポートしてバージョン管理するためのスクリプト
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Option Explicit | |
' 使用上の注意 | |
' Excelは2003以降デフォルトでVBScriptとかから中のプロジェクトを参照できなくなっているので、 | |
' Excel自体の設定を変更して「Visual Basicプロジェクトへのアクセスを信頼する」に | |
' チェックを入れてから使ってください | |
'(「プログラミングによるVisual Basic プロジェクトへのアクセスは信頼性に欠けます」とエラーが出る) | |
' 設定の変更方法はExcelのバージョンによって異なりますので、ググってください。 | |
' エクスポートしたいExcelブックとエクスポート先のパスを記述 | |
Dim src : src = "D:\\EEM\\Test.xls" | |
Dim dst : dst = "D:\\EEM\\VCS\\" | |
Dim excel : Set excel = CreateObject("Excel.Application") | |
excel.Workbooks.Open(src) | |
Dim book : Set book = excel.WorkBooks(excel.WorkBooks.Count) | |
Dim targetModule | |
For Each targetModule In book.VBProject.VBComponents | |
targetModule.Export dst + targetModule.Name + GetExtension(targetModule.Type) | |
Next | |
excel.DisplayAlerts = false | |
excel.Quit() | |
Set book = Nothing | |
Set excel = Nothing | |
MsgBox "エクスポートが完了しました。" | |
Private Function GetExtension(extType) | |
' 1 :vbext_ct_StdModule | |
' 2 :vbext_ct_ClassModule | |
' 100 :vbext_ct_Document | |
' 3 :vbext_ct_MSForm | |
Select Case extType | |
Case 1 | |
GetExtension = ".bas" | |
Case 2, 100 | |
GetExtension = ".cls" | |
Case 3 | |
GetExtension = ".frm" | |
End Select | |
End Function |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment