この記事では、大量のデータをエクセルシートに記入された情報をもとに仕分けするVBAのサンプルコードをご紹介しています。
状況に応じて微修正するだけで誰でも簡単に活用できるはずです。
それでは早速やっていきます!
スポンサーリンク
紹介するスキルの概要説明
まずはじめに今回の記事で紹介する内容を簡単にご説明しておきます。
今回は以下の画像のように
◆あるフォルダの中に大量のテキストファイルが入っている
◆そのファイルたちを仕分けする先のフォルダも同じフォルダに入っている
◆仕分けを実行するマクロファイルも同じフォルダに入っている
という状況でスキル解説していきます。
また、これらをどのように仕分けをするかは、これから実行するマクロファイルに記入されていることとします。
(A列にファイル名が、B列に仕分けする際に使う数字が入っています。)
今回はB列が1なら01_folderというフォルダに、2なら02_folderというフォルダに3なら03_folderというフォルダにそれぞれファイルを移動させることにします。
状況説明はこのくらいにして、さっそくこれらのデータを仕分けするコードを書いていきましょう。
スポンサーリンク
ファイルの仕分けを行うVBAコード
さっそくですが、以下が条件に応じてファイルを仕分けするVBAサンプルコードです。
◆VBAサンプルコード
Sub shiwake()
'変数の型を宣言
Dim file_name As String
Dim i As Integer
'A列が空欄になるまで繰り返し処理を実施
Do Until Cells(2 + i, 1) = ""
file_name = Cells(2 + i, 1)
'仕分け番号が1の場合
If Cells(2 + i, 2) = 1 Then
Name ThisWorkbook.Path & "\" & file_name As ThisWorkbook.Path & "\01_folder\" & file_name
Else
'仕分け番号が2の場合
If Cells(2 + i, 2) = 2 Then
Name ThisWorkbook.Path & "\" & file_name As ThisWorkbook.Path & "\02_folder\" & file_name
Else
'仕分け番号が3の場合
If Cells(2 + i, 2) = 3 Then
Name ThisWorkbook.Path & "\" & file_name As ThisWorkbook.Path & "\03_folder\" & file_name
End If
End If
End If
i = i + 1
Loop
End Sub
◆サンプルコードの解説
ファイル移動スキル Name A as B
A : 移動前のファイルのフルパス
B : 移動後のファイルのフルパス
これでファイルを移動することが出来ます。
基本的にはIF文を使い、このNameスキルの仕分け先を条件に応じて変更しているだけです。
もし仕分け先が4つ以上になる場合はその分IF文を増やしていけばOKです。
スポンサーリンク
サンプルコードの実行結果確認
最後に念のためこのコードを実行してみましょう。
実行前のフォルダ内はこんな感じです。
それでは、いざ実行!!!
先ほどのフォルダ内の大量のファイルはきれいになくなりました。
各フォルダの中を見てみましょう。
しっかりエクセルシートに記載されている通りに仕分けが行われることが確認できました。
(フォルダを並べたせいでちょっとわかりにくいですが、ちゃんとできてます。)
スポンサーリンク
おわりに
というわけで今回は大量のファイルを条件に応じて仕分けする方法をご紹介しました。
なかなかない状況だとは思いますが、こんなこともエクセルでできるということは頭に入れておくと良いでしょう。
このように私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
・日々の残業時間を減らしたい。
・業務をもっと効率的にこなしたい。
・もっと勉強する時間を作りたい。
こんな思いを持っている人は、ぜひ他の記事も見てみてくださいね。
この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!