Excel VBA テクニック集 |
シートごとのファイルに分割する方法です。
Excelファイルの容量が大きくなったとき、かつシート枚数が多い場合、「どのシートが異常か」の原因調査へ使えます。 使い方は、ファイル一覧を使った応用の、「マクロ専用ファイル」によるマクロ実行に、下記コードを入れます。 Dim InFile_Frm As String Dim InBook_Frm As String Dim OutFile_Frm As String Dim OutBook_Frm As String Dim I As Integer Dim J As Integer InFile_Frm = (Excel_App.ActiveWorkbookのファイル名) InFile_Frm = Left(InFile_Frm, Len(InFile_Frm) - 4) InBook_Frm = Excel_App.ActiveWorkbook.Name For I = 1 To Excel_App.Workbooks(InBook_Frm).Worksheets.Count 'まっさらのWorkBookを作る Excel_App.Workbooks.Add DoEvents 'WorkBookの名前を変数に入れる。「Sheet1」とか「Sheet2」のような値が入る。 OutBook_Frm = Excel_App.ActiveWorkbook.Name 'WorkBook間のコピー Excel_App.Workbooks(InBook_Frm).Worksheets(I).Copy _ Before:=Excel_App.Workbooks(OutBook_Frm).Worksheets(1) DoEvents 'シートがコピーされたWorkBookを登録 OutFile_Frm = InFile_Frm & "_" & Excel_App.Workbooks(InBook_Frm).ActiveSheet.Name & ".xlsx" Excel_App.Workbooks(OutBook_Frm).SaveAs FileName:=OutFile_Frm DoEvents '登録したファイル「X:\・・\・・\(コピー元ブック)_Sheet3.xlsx」から、ブック名「(コピー元ブック)_Sheet3.xlsx」を作成 OutBook_Frm = "" For J = Len(OutFile_Frm) To 1 Step -1 If Mid(OutFile_Frm, I, 1) = "\" Then Exit For End IF OutBook_Frm = Right(OutFile_Frm, Len(OutFile_Frm) - I + 1) Next J 'ブック「(コピー元ブック)_Sheet3.xlsx」をClose Excel_App.Workbooks(OutBook_Frm).Close DoEvents Next I |
「こだわりハウス」写真館| 数学公式集| ピンポイントストリートビュー| FaceBook| Excel Vba テクニック集| Excel 計算式解析・他解析| 富山の建築家| Excel 計算式解析・他解析| 積分の定義・積分の記号の意味の研究| |