
お世話になっております。
マクロ初心者です。
ファイル名称のyyyymmddとフォルダ名称のyyyymmddが
一致したものだけを移動させるVBAを教えていただきたいです。
ファイル名称の左から14文字目~22文字目のyyyymmddとフォルダ名称の左から1文字目~8文字目の
yyyymmddが一致する場合のみ該当のファイルをフォルダへ移動します。
一致しないものはそのままにします。
フォルダとファイルは複数存在します。
因みに今回移動させるファイルはAVIファイルです。
ファイル名称「xx-xx__0000x_yyyymmddxxxxxx.avi」
フォルダ名称「yyyymmdd_xx-xx_aaaaa」
例)
ファイル名称
1 xx-xx__0000x_20211001xxxxxx.avi
2 xx-xx__0000x_20211002xxxxxx.avi
3 xx-xx__0000x_20211003xxxxxx.avi
4 xx-xx__0000x_20210901xxxxxx.avi
フォルダ名称
A 20211001_xx-xx_aaaaa
B 20211002_xx-xx_aaaaa
C 20211003_xx-xx_aaaaa
1は20211001が一致するためAへ移動
2は20211002が一致するためBへ移動
3は20211003が一致するためCへ移動
4は20210901が一致するフォルダがないためそのまま
以上です。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
以下のマクロを標準モジュールに登録してください。
Const FolderName As String = "d:\goo\data3"
は移動対象となるファイル及びフォルダを格納しているフォルダ名です。
あなたの環境にあわせて適切に設定してください。
--------------------------------------------
Option Explicit
Public Sub ファイル移動()
Const FolderName As String = "d:\goo\data3"
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Dim tfolders As Object
Dim tfiles As Object
Dim wfil As Object
Dim wfol As Object
Dim srcName As String
Dim dstName As String
Set tfolders = FSO.getfolder(FolderName).Subfolders
Set tfiles = FSO.getfolder(FolderName).Files
For Each wfil In tfiles
For Each wfol In tfolders
If Mid(wfil.Name, 14, 8) = Mid(wfol.Name, 1, 8) Then
srcName = FolderName & "\" & wfil.Name
dstName = FolderName & "\" & wfol.Name & "\" & wfil.Name
If FSO.FileExists(dstName) Then
FSO.deletefile (dstName)
End If
FSO.movefile srcName, dstName
Exit For
End If
Next
Next
MsgBox ("完了")
End Sub
No.1
- 回答日時:
ファイルが保存されているフォルダと振り分けるフォルダの相対位置関係が不明ですし、場所によっては権限で移動できないかも?
比較する場合は文字列から抜き出すためにMID関数
http://officetanaka.net/excel/vba/function/Mid.htm
を用いてみるとか?
あとはFileSystemObject
http://officetanaka.net/excel/vba/filesystemobje …
を読破するといけるかな?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) パワークエリの複数ファイルのデータ統合について 3 2022/07/14 17:06
- Excel(エクセル) 【VBA】フォルダAにある2つのファイルの内1つを、フォルダBへ。もう1つを、フォルダBへ移動したい 6 2022/07/26 08:51
- 日本語 「徒歩圏内」「徒歩圏」の違い。ニュアンスも含め知りたい 5 2022/06/19 10:05
- その他(法律) 肩書きを偽ってメールを送った場合、不正アクセス禁止法違反になるのか? 1 2023/02/18 08:35
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
- Access(アクセス) Access VBA を利用して、フォルダ内のファイルの名称を変更したい 1 2023/08/03 08:27
- Excel(エクセル) フォルダAから1つのファイルだけを、フォルダBへを移動するVBAについて 2 2022/07/25 11:45
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- 英語 英語の原級の文法で 1 2022/11/05 21:12
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
C ファイル出力で、フォルダが...
-
空のフォルダの判定
-
VB.NRT FolderBrowserDialogを...
-
クラウドにあるフォルダを共有...
-
META-INFフォルダの置き場所に...
-
Javaでフォルダ複数階層のZipフ...
-
VB6.0 FileListBoxでフォルダ表示
-
ディレクトリ名変更してコピー...
-
Excelvbaでブックをコピー名前...
-
ファイル名と同名のフォルダを...
-
Access VBA で フォルダ権限...
-
エクセルのデータをメモ帳に貼...
-
フォルダの中身がカラか調べる
-
ファイルとフォルダのどちらも...
-
VB6 CommonDialog フォルダ上書...
-
Pythonの作業環境・作業フォル...
-
SHBrowseforfolderについて質問...
-
VBでフォルダをパスワードでロ...
-
あるフォルダーのファイルを違...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
会社のネットワーク上のファイ...
-
パス名に2バイト文字(マルチバ...
-
デスクトップの画像をhtmlに表...
-
【マクロ】ファイル名の日付に...
-
C ファイル出力で、フォルダが...
-
ファイル名と同名のフォルダを...
-
Excelのハイパーリンクについて...
-
VBA 最新のフォルダ取得
-
Excelで指定したフォルダに保存...
-
VBAでファイル名を指定して保存...
-
Access VBA で フォルダ権限...
-
サーバ内のフォルダ名と各フォ...
-
excelマクロ 冒頭3文字が一致す...
-
VBA フォルダ名に特定の文字を...
-
カレントフォルダって?
-
Excel VBA マクロ フォルダ名を...
-
VBA フォルダの複数選択ができない
-
ExcelVBAでフォルダへのハイパ...
-
ExcelのVBAでフォルダ指定がで...
おすすめ情報
説明不足ですみません。
フォルダーとファイルは同じ階層にあり、
フォルダーに権限等は設定していません。