見出し画像

Excel VABによる作業の効率化 ファイル一括処理のサンプルあり

ExcelのVBAを使うことで、効率的に作業を行うための様々なツールを作成することができます。以下は、作ったことのある便利なツールの例です。

  1. 自動入力ツール:Excelのセルに連続した数値やテキストを自動的に入力するツールです。セルの範囲を選択するだけで、必要な値を自動的に入力できます。

  2. ファイル一括処理ツール:指定したフォルダ内のファイルを一括で処理するためのツールです。フォルダ内の全てのファイルに対して、指定した処理を自動的に行うことができます。

  3. データベースツール:Excel内にデータベースを作成し、検索やフィルタリング、ソートなどの操作を行うためのツールです。VBAを使って、自分に必要な機能をカスタマイズすることができます。

  4. ショートカットキー設定ツール:Excel内でよく使う機能にショートカットキーを割り当てることができるツールです。キーボード操作の回数を減らし、作業の効率を上げることができます。

  5. グラフ自動作成ツール:指定したデータ範囲からグラフを自動的に作成するツールです。グラフの種類や表示形式などをカスタマイズすることができます。

これらのツールを作成することで、Excel作業の効率を大幅に向上させることができます。また、自分に必要な機能をカスタマイズすることで、作業のストレスを軽減することができます。

以下は、ファイル一括処理ツールのサンプルコードです。このコードでは、指定したフォルダ内のすべてのファイルを開き、シート1に保存されているデータを取得し、別のファイルに出力するという処理を行っています。このサンプルコードをベースに、必要な処理を追加・変更することで、自分に必要なファイル一括処理ツールを作成することができます。

Sub BatchProcessFiles()
    Dim folderPath As String
    Dim filePath As String
    Dim wbSource As Workbook
    Dim wsSource As Worksheet
    Dim wbDest As Workbook
    Dim wsDest As Worksheet
    Dim rowCount As Long
    Dim colCount As Long
    Dim i As Long
    Dim j As Long
    
    ' フォルダのパスを指定
    folderPath = "C:\SampleFolder\"
    
    ' 出力先ファイルを作成
    Set wbDest = Workbooks.Add
    Set wsDest = wbDest.Sheets(1)
    
    ' フォルダ内のすべてのファイルに対して処理を行う
    filePath = Dir(folderPath & "*.*")
    Do While filePath <> ""
        ' ファイルを開く
        Set wbSource = Workbooks.Open(folderPath & filePath)
        Set wsSource = wbSource.Sheets(1)
        
        ' データを取得し、出力先ファイルに書き込む
        rowCount = wsSource.UsedRange.Rows.Count
        colCount = wsSource.UsedRange.Columns.Count
        For i = 1 To rowCount
            For j = 1 To colCount
                wsDest.Cells(i, j).Value = wsSource.Cells(i, j).Value
            Next j
        Next i
        
        ' ファイルを閉じる
        wbSource.Close SaveChanges:=False
        
        ' 次のファイルを処理するために、ファイル名を取得
        filePath = Dir()
    Loop
    
    ' 出力先ファイルを保存
    wbDest.SaveAs folderPath & "output.xlsx"
    
    ' 出力先ファイルを閉じる
    wbDest.Close SaveChanges:=False
    
    ' 完了メッセージを表示
    MsgBox "処理が完了しました。"
End Sub

このコードでは、まずフォルダのパスを指定し、出力先ファイルを作成しています。その後、Dir関数を使ってフォルダ内のファイル名を取得し、Do Whileループですべてのファイルに対して処理を行っています。処理の中では、ファイルを開いてデータを取得し、出力先ファイルに書き込んでいます。すべてのファイルの処理が終わったら、出力先ファイルを保存しています。最後に、出力先ファイルを閉じて、処理が完了したことを示すメッセージを表示しています。

このコードは、指定したフォルダ内のすべてのファイルを処理するため、一括処理ツールとして利用することができます。例えば、以下のような機能を追加することができます。

  • ファイルの種類による分類:特定の拡張子を持つファイルのみを処理するように、Dir関数の引数を変更することができます。

  • 処理内容の変更:今回の例では、ファイルを開いてデータを取得し、出力先ファイルに書き込むという処理を行っていますが、自分の目的に応じて、必要な処理に変更することができます。

  • 出力形式の変更:今回の例では、データを出力先ファイルに書き込んでいますが、必要に応じて、CSVファイルやテキストファイルなど、別の形式で出力することができます。

これらの変更を加えることで、自分に必要なファイル一括処理ツールを作成することができます。また、処理中にエラーが発生した場合に備えて、エラー処理を追加することもおすすめします。

いいなと思ったら応援しよう!