Excel VBA テクニック集 |
|
「マクロ専用ファイル」内のリストボックス(ファイル一覧)を使った応用です。
Excelの編集(コピー・貼付)を自動化します。自動化のパターンは3通りあります。 パターン1、同一シート内の編集 下記の例は、I列をL列にコピーした場合です。
コードの概要 Dim I as Integer Call Excel_App_Create(Excelを起動) For I = 0 To MacroSheet1.ListBox1.ListCount - 1 Excel_App.Workbooks.Open Filename:=MacroSheet1.Range("B2").Value & "\" & MacroSheet1.ListBox1.List(I) _ , ReadOnly:=False, UpdateLinks:=0(ListBox1のリストからファイルを開く) Excel_App.ActiveSheet.Range("I:I").Copy Excel_App.ActiveSheet.Range("L:L").Select Excel_App.ActiveSheet.Paste Excel_App.ActiveWorkbook.SaveAs FileName:=MacroSheet1.Range("B2").Value & "\" & MacroSheet1.ListBox1.List(I)(上書き保存) Call Workbooks_Close_All(WorkBookを閉じる) Next I Call Excel_App_Quit(Excelを閉じる)パターン2、シート間の編集 下記の例は、「Sheet1」のB1:D20を「Sheet2」のB1:D20にコピーした場合です。
コードの概要 Dim I as Integer Call Excel_App_Create(Excelを起動) For I = 0 To MacroSheet1.ListBox1.ListCount - 1 Excel_App.Workbooks.Open Filename:=MacroSheet1.Range("B2").Value & "\" & MacroSheet1.ListBox1.List(I) _ , ReadOnly:=False, UpdateLinks:=0(ListBox1のリストからファイルを開く) '「マクロ専用ファイル」によるマクロ実行 Excel_App.Worksheets(Sheet1).Range("B1:D20").Copy Excel_App.Worksheets(Sheet2).Range("B1").Select Excel_App.Worksheets(Sheet2).Paste ・ ・ ・ Excel_App.Workbooks(PasteBook_Frm).SaveAs FileName:=MacroSheet1.Range("B2").Value & "\" & MacroSheet1.ListBox1.List(I)(上書き保存) Call Workbooks_Close_All(WorkBookを閉じる) Next I Call Excel_App_Quit(Excelを閉じる) パターン3、別ファイルからの編集 下記の例は、1個のファイルのシートの一部「G2:H15」をコピーし、各ファイルのシートの「「H2:I15」」に書式の貼り付けをします。
コードの概要 Dim CopyBook_Frm As String Dim CopySheet_Frm As String Dim PasteBook_Frm As String Dim PasteSheet_Frm As String Dim I as Integer Call Excel_App_Create(Excelを起動) For I = 0 To MacroSheet1.ListBox1.ListCount - 1 Excel_App.Workbooks.Open FileName:=(コピー元Excelファイル), ReadOnly:=False, UpdateLinks:=0 CopyBook_Frm = Excel_App.ActiveWorkbook.Name CopySheet_Frm = Excel_App.ActiveSheet.Name Excel_App.Workbooks.Open Filename:=MacroSheet1.Range("B2").Value & "\" & MacroSheet1.ListBox1.List(I) _ , ReadOnly:=False, UpdateLinks:=0(ListBox1のリストからファイルを開く) PasteBook_Frm = Excel_App.ActiveWorkbook.Name PasteSheet_Frm = Excel_App.ActiveSheet.Name '「マクロ専用ファイル」によるマクロ実行 Excel_App.Workbooks(CopyBook_Frm).Worksheets(CopySheet_Frm).Range("G2:H15").Copy Excel_App.Workbooks(PasteBook_Frm).Worksheets(PasteSheet_Frm).Range("H2:I15").PasteSpecial Paste:=xlPasteValidation ・ ・ ・ Excel_App.Workbooks(PasteBook_Frm).SaveAs FileName:=MacroSheet1.Range("B2").Value & "\" & MacroSheet1.ListBox1.List(I)(上書き保存) Call Workbooks_Close_All(WorkBookを閉じる) Next I Call Excel_App_Quit(Excelを閉じる) |
「こだわりハウス」写真館| 数学公式集| ピンポイントストリートビュー| FaceBook| Excel Vba テクニック集| Excel 計算式解析・他解析| 富山の建築家| Excel 計算式解析・他解析| 積分の定義・積分の記号の意味の研究| |