- 追加された行はこの色です。
- 削除された行はこの色です。
*Excel 関連情報 [#i886b393]
**サンプルコード [#d1615f0f]
***ADO を使ってシートを連結する方法 [#za42638b]
-複数シート/複数ファイルをマージするサンプル(merge_sheet.vbs)
Option Explicit
Dim g_strDIR
Dim g_strMergeData ' マージ対象のデータフォルダ
Dim g_strNewFile ' マージ先のファイル名
Dim g_strNewSheet ' マージ先のシート名
Main
' メイン プロシージャ
Sub Main()
g_strDIR = "D:\home\edu\hatena\merge_sheet\" ' このマクロがある場所
g_strMergeData = g_strDIR & ".\data" ' マージ対象のデータフォルダ
g_strNewFile = g_strDIR & ".\merge.xls" ' マージ先のファイル名
g_strNewSheet = "[Sheet1$]" ' マージ先のシート名
' 各シートをマージする
MergeSheets
End Sub
' 各シートをマージする
Sub MergeSheets()
Dim cn
Dim rs
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & g_strNewFile & ";Extended Properties=Excel 8.0"
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")
Dim folder
Set folder = fs.GetFolder(g_strMergeData)
Dim file
Dim sheet
Dim sheets()
' ファイルの数だけ処理を行う
For Each file In folder.Files
GetSheetNames file, sheets
' ファイル内の各シートを新しいシートに挿入する
For Each sheet In sheets
Dim strSQL
strSQL = "INSERT INTO " & g_strNewSheet & " SELECT * FROM " & sheet
' INSERT 文を実行
cn.Execute strSQL
Next
Next
End Sub
' 指定したファイルのシート名(複数シート名)を取得する
Function GetSheetNames(ByVal file, ByRef sheets())
Dim app
Set app = CreateObject("Excel.Application")
app.Workbooks.Open file
Dim i
Dim nSheets
nSheets = app.Worksheets.Count
ReDim sheets(nSheets - 1)
For i = 0 To nSheets - 1
' "シート名"+"$" を配列に格納
sheets(i) = "[Excel 8.0;database=" & file & "].[" & app.Worksheets(i + 1).Name & "$]"
Next
app.Workbooks.Close
Set app = Nothing
End Function
-ダウンロード
#ref(merge_sheet.zip);
■ フォルダ構成
D:\HOME\EDU\HATENA\MERGE_SHEET
│ macro.vbs … XLSマージスクリプト(VBScriptバージョン)
│ macro.xls … XLSマージスクリプト(Excel/VBAバージョン)
│ merge.xls … マージ先のファイル
│ readme.txt … このファイル
│
└─data … マージ対象ファイル
aaa.xls
bbb.xls
ccc.xls
-制限事項
--マージ対象の Excel ファイルは、すべてのシートにデータが入っている必要があります。
--空のシートがあるとエラーになります。ご注意下さい。
-はてな
--http://www.hatena.ne.jp/1088413798
---終わってしまったけど。
-Thanks for the good site. [URL=http://tiffanys.schadez.info]tiffanys[/URL] tiffanys [URL=http://venus-swimwear.zeiter.info]venus swimwear[/URL] venus swimwear <a href="http://weightwatchers.schadez.info">weightwatchers</a> weightwatchers <a href="http://annualcreditreport.zeiter.info">annualcreditreport</a> annualcreditreport <a href="http://citimortgage.zeiter.info">citimortgage</a> citimortgage http://orlando-sentinal.schadez.info orlando sentinal http://gieco.zeiter.info gieco http://peapod.zeiter.info peapod http://thrifty-nickel.zeiter.info thrifty nickel http://bamboozle.zeiter.info bamboozle -- [[tiffanys]] &new{2008-11-19 (水) 14:48:58};
#comment
//#comment