No.3ベストアンサー
- 回答日時:
500個ほどのファイルを、そのファイルを基準に振り分ける例です。
マスタ(book)の
社員番号(ファイル名)に該当するセル範囲に『社員コード』、
部署に該当する範囲に『部署コード』の範囲名を付けます。
VBA内の2つのフォルダを設定します。
ただし、2つのフォルダが異なるドライブにあると使えません。
マスタ(book)の『社員コード』、『部署コード』が入っているシートのコードウインドウに貼り付けます。
実行する時は、元ファイルのコピー(バックアップ)を行った後、実行して下さい。
Sub Furiwake()
Const srcFolder = "A:\社員\" '*** Bookのあるフォルダ(指定する)
Const desFolder = "A:\部署\" '*** 振り分けるフォルダ(指定する)
Dim fileName As String 'Excelファイル名
Dim rg As Range '検索した社員コードのセル
Dim schCode As String '検索する社員コード
Dim schFolder As String '検索した社員コードに対するフォルダ
fileName = Dir(srcFolder & "*.xls")
While fileName <> ""
'ファイル名からコードを取り出す
schCode = Application.Substitute(fileName, ".xls", "")
'取り出したコードと一致するセルを探す
Set rg = Range("社員コード").Find(what:=schCode, LookAt:=xlWhole)
If Not rg Is Nothing Then
'取り出したコードと一致するセルと同じ行の部署を取り出す
schFolder = Cells(rg.Row, Range("部署コード").Column)
'フォルダ+ファイル名でファイル名前を変える
Name srcFolder & fileName As desFolder & schFolder & "\" & fileName
Else
'コードが見つからなかった時
MsgBox fileName & "の対象部署はありません"
End If
'次のExcelファイル
fileName = Dir
Wend
End Sub
No.2
- 回答日時:
こんな感じでしょうか・・・
あとは実際の条件に合わせて文字列関数の所を変化させる、
CASEの項目を増やすなどしてください。
当方はEXCEL2000で動作確認しました。
Sub FileMoveme()
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder("500個ファイルがあるフォルダのパス")
Set fc = f.Files
For Each f1 In fc
Select Case Left(f1.Name, 1)'先頭の1文字で区別する場合
Case "A"
f1.Move "振り分けるフォルダAのパス" & f1.Name
Case "B"
f1.Move "振り分けるフォルダBのパス" & f1.Name
Case "C"
f1.Move "振り分けるフォルダCのパス" & f1.Name
Case Else
End Select
Next
Set fs = Nothing
Set f = Nothing
Set fc = Nothing
End Sub
No.1
- 回答日時:
マスタがどんな形なのか分からないのですが、例えばExcelのワークシートのA列にコードが、B列に部署名が、1行から500行まで並んでいる様なもので、ファイル名が123.xlsのとき、コードは123だとします。
そしてC:\ABCのフォルダにファイルが500個存在し、C:\DEFのフォルダに部署名のフォルダが、例えば C:\DEF\営業部 の様な形で存在しているとします。
マスタのワークシートで、以下のマクロを実行すればどうでしょうか。
Sub Macro1()
Dim i As Long
On Error Resume Next
ChDir "C:\ABC"
For i = 1 To 500
Name "C:\ABC\" & Cells(i, 1) & ".xls" As "C:\DEF\" & Cells(i, 2) & "\" & Cells(i, 1) & ".xls"
Next i
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/20 10:00
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Excel(エクセル) 【マクロ】【VBA】同じフォルダ内にあるエクセルのデータを転記したい【ブック1からブック2へ】 9 2023/08/10 07:51
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行して 作業フォルダの中にある PDFファイル名を 3 2023/07/01 15:16
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
VBSでファイル名と同じフォルダ...
-
VBA 最新のフォルダ取得
-
vbsで選択ダイアログを表示した...
-
サーバ内のフォルダ名と各フォ...
-
Excelで指定したフォルダに保存...
-
ファイル名と同名のフォルダを...
-
ACCESS VBAからのファイル削除
-
windowsでテキストファイルの各...
-
フォルダにリンクを貼りたい
-
多量のファイルをフォルダに自...
-
ホームページビルダーで新しい...
-
excel VBA Dirにて検索したフォ...
-
Excelvbaでブックをコピー名前...
-
ファイルとフォルダのどちらも...
-
AIX findコマンド
-
VBAでExcelのBookの串刺し集計
-
C言語でのフォルダ作成
-
フォルダ選択ダイアログ:ネッ...
-
30日前を残して過去の日付フォ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
パス名に2バイト文字(マルチバ...
-
ファイル名と同名のフォルダを...
-
VBA 最新のフォルダ取得
-
Excelのハイパーリンクについて...
-
デスクトップの画像をhtmlに表...
-
ディレクトリ名変更してコピー...
-
VBA フォルダ名に特定の文字を...
-
バッチファイルで指定フォルダ...
-
フォルダ内のPDFファイル名を変...
-
Access VBA で フォルダ権限...
-
excelマクロ 冒頭3文字が一致す...
-
【マクロ】ファイル名の日付に...
-
フォルダにリンクを貼りたい
-
会社のネットワーク上のファイ...
-
多量のファイルをフォルダに自...
-
C ファイル出力で、フォルダが...
-
保存先のフォルダ名を指定した...
-
vbsで選択ダイアログを表示した...
-
Excel VBA 同じ名前のフォルダ...
おすすめ情報