ファイル名から必要な部分を分割してExcel集計用データを作成

今回はファイル名から日付 取引先 金額をセル別にして集計可能なエクセルデータにするVBAコードをご紹介させていただきます。

以下のコードを利用するとフォルダにあるファイル名を取得しファイル名からExcelの表形式のデータを作成して集計する事が可能になります。

ファイル名にアンダースコア(_)で区切りがある事が条件となります。

▪️ ファイル名(事例)
命名規則  
日付_取引先_金額
20240128_東京電力エナジーパートナーズ_26890.pdf  だとすると

20240128  
東京電力エナジーパートナーズ
26890.pdf

A列にあった文字を B列に 日付 C列に 取引先 D列に 金額 として_で分割をする事ができます。

分割した後に.pdf部分をVBAや置換などで消したりする事も可能です。

セル A2 以下にあるファイル名を分割して、隣接するセルに配置するVBAマクロは次のようになります。

このコードは、A列にある各行のファイル名をアンダースコア(_)で分割し、B列以降に結果を配置します。

1. Excel VBAエディタを開く: Excelで、Alt + F11 キーを押してVBAエディタを開きます。
2. 新しいモジュールを挿入: 「挿入」メニューから「モジュール」を選択して新しいモジュールを挿入します。
3. コードを挿入: 下記のVBAコードを挿入します。

Sub SplitFilenamesInColumnA()
    Dim cell As Range
    Dim parts() As String
    Dim partIndex As Integer
    Dim row As Integer

    ' A列の各セルに対してループ
    For Each cell In Columns("A").Cells
        ' 空のセルが出現したら終了
        If cell.Value = "" Then Exit For

        ' ファイル名をアンダースコアで分割
        parts = Split(cell.Value, "_")

        ' 分割した各部分を隣接するセルに配置
        For partIndex = LBound(parts) To UBound(parts)
            cell.Offset(0, partIndex + 1).Value = parts(partIndex)
        Next partIndex
    Next cell
End Sub

4. マクロの実行: VBAエディタでこのマクロを実行するか、Excelに戻ってマクロを完了します。

このマクロは、A列の各行に記載されたファイル名をアンダースコアで分割し、それぞれの部分をその行のB列以降に配置します。ファイル名がなくなるまで、A列を下にスクロールしていきます。

使い方 フォルダ内からファイル名を取得して、そのファイル名からExcelデータは作成する事ができます。

わざわざ、文字をタイピングして入力をしなくてもファイル名(命名規則)が、しっかりとしていれば、エクセルの集計データや会計システムにインポートする為の基データができてしまいます。

最も楽な方法としては、スキャンスナップを使い取得した情報(日付 取引先 金額)をcsv形式のファイルとして書き出して、エクセルによる集計を行ったり会計システムへインポートする基データの作成です。

「業務効率が飛躍的にアップ!ScanSnapを使ってレシートをスキャンするだけで、日付・店名・金額が自動的にファイル名に!」

日々の手入力をするシーンが減り多くの情報を一度に会計システムに取り込みをする事が可能です。
 
同じような取引先が繰り返し行われていたり、膨大な量のデータ入力がある際には役に立つと思います。


この記事が気に入ったらサポートをしてみませんか?