Skip to content

Instantly share code, notes, and snippets.

@xnrghzjh
Created October 30, 2012 08:09
Show Gist options
  • Save xnrghzjh/3978902 to your computer and use it in GitHub Desktop.
Save xnrghzjh/3978902 to your computer and use it in GitHub Desktop.
Excelのモジュールをエクスポートしてバージョン管理するためのスクリプト
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