Excel VBA テクニック集
編集(コピー・貼付)の考え方





Excel VBA テクニック集



 「マクロ専用ファイル」内のリストボックス(ファイル一覧)を使った応用です。

Excelの編集(コピー・貼付)を自動化します。自動化のパターンは3通りあります。

パターン1、同一シート内の編集
下記の例は、I列をL列にコピーした場合です。
マクロ専用シート.xlsm ファイル一覧のブック.xlsm

コードの概要
    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にコピーした場合です。
マクロ専用シート.xlsm ファイル一覧のブック.xlsm

コードの概要
    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」」に書式の貼り付けをします。
マクロ専用シート.xlsm
コピー元シート


貼付先シート

コードの概要
    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 計算式解析・他解析| 積分の定義・積分の記号の意味の研究|