

No.2ベストアンサー
- 回答日時:
vbaでの実装例です。
以下のマクロを標準モジュールへ登録してください。-------------------------------------------
Option Explicit
Public Sub ファイル移動()
Const Folder As String = "d:\goo\data\goo214" 'DOC格納フォルダ
Const FORCE_REPLACE As Boolean = True '同一ファイルが存在するときの強制上書き(true=上書きする、false=上書きしない)
Dim FSO As Object 'Filesystem
Dim dicT As Object '連想配列
Dim RE As Object '正規表現
Dim dirName As String
Dim fileName As String
Dim result As Object
Dim mstr As String
Dim oldname As String
Dim newname As String
Dim count As Long
Dim atr As Integer
Set FSO = CreateObject("Scripting.FileSystemObject")
Set dicT = CreateObject("Scripting.Dictionary") ' 連想配列の定義
Set RE = CreateObject("VBScript.RegExp")
RE.Pattern = "^.*名前.*_"
RE.Global = True
dirName = Dir(Folder & "\*名前*", vbDirectory)
If dirName = "" Then
MsgBox (Folder & "内にフォルダが存在しません。")
Exit Sub
End If
'全てのフォルダを処理する
Do While dirName <> ""
'フォルダ名の記憶
If (GetAttr(Folder & "\" & dirName) And vbDirectory) <> 0 Then
dicT(dirName) = True
End If
dirName = Dir()
Loop
fileName = Dir(Folder & "\*名前*.doc", vbNormal)
If fileName = "" Then
MsgBox (Folder & "内にDOCが存在しません。")
Exit Sub
End If
'全てのファイルを処理する
count = 0
Do While fileName <> ""
Set result = RE.Execute(fileName)
If result.count > 0 Then
mstr = result(0).Value
mstr = Left(mstr, Len(mstr) - 1)
If dicT.exists(mstr) = True Then
oldname = Folder & "\" & fileName
newname = Folder & "\" & mstr & "\" & fileName
MsgBox ("<" & oldname & "><" & newname & ">") '移動前後のファイル名表示
If FSO.FileExists(newname) Then '移動先にファイルが存在するなら
If FORCE_REPLACE = True Then '同一ファイル存在時の上書き指定がtrueなら
FSO.deletefile newname '元のファイルを削除して
FSO.movefile oldname, newname '移動先に移動する
count = count + 1 '移動件数アップ
End If
Else '移動先にファイルが存在しないなら
FSO.movefile oldname, newname '移動先に移動する
count = count + 1 '移動件数アップ
End If
End If
End If
fileName = Dir()
Loop
MsgBox (count & "件のファイルを移動しました")
End Sub
-----------------------------------------------
使用時の注意
Const Folder As String = "d:\goo\data\goo214" 'DOC格納フォルダ
docが存在するフォルダです。あなたの環境にあわせて適切に設定してください。
Const FORCE_REPLACE As Boolean = True '同一ファイルが存在するときの強制上書き(true=上書きする、false=上書きしない)
同一ファイルが移動先に存在する場合の扱いです。
現在は、trueなので、強制的に移動(上書き)します。
これをflaseにすると移動しません。
実装例ありがとうございます。
説明が足らなかったようでごめんなさい。
名前のところは、処理した人の名前が入ります。
山田とか佐藤とか。。。
このあたりでどのように処理したらよいのか。。。

No.4
- 回答日時:
すみません。
ますます、わからなくなってきました。
>実際のファイル名はもう少し複雑になってしまいます。
>*****(数字5桁)_場所_ファイル名_処理した人の名前.doc
>処理した人の名前フォルダがあるので、ファイル名にある名前部分と同様のフォルダへ振り分けたいと思っています。
1)最初に提示された日付の部分(20170801等)はどこなのでしょうか。
2)「ファイル名」のなかに名前の部分があって、「処理した人の名前」にも名前があるのですか。
具体的な、以下について実際の例を提示していただけませんでしょうか。
①実際のファイル名
②移動したいフォルダ名
すみません、実際のファイル名は仕事の内容が分かってしまう為、控えております。
やりたい事は、ファイル名に処理した人の名前が入っているので、同じ名前のフォルダへ移動したいのです。

No.3
- 回答日時:
>名前のところは、処理した人の名前が入ります。
>山田とか佐藤とか。。。
そうなると、マクロでは、名前のところは、任意の文字として扱うので、
○△□●▲■_20170801.doc → ○△□●▲■フォルダへ
●○●_20170726.doc → ●○●フォルダへ
○△□_20170802.doc → ○△□フォルダへ
のような移動になります。
誤動作させない為には、以下の条件が必要です。
1)日付の部分(20170802等)は、必ず、8桁でしょうか。
2)日付の前の_(アンダーバー)は、必ず、半角のアンダーバーで、
○名前○の中にアンダーバーが含まれることはないと考えて良いですか。
つまり
△佐藤△_20170801.doc (全角のアンダーバー)
△_佐藤△_20170801.doc (アンダーバーが2つある)
上記のようなケースはないと考えて良いですか。
実際のファイル名はもう少し複雑になってしまいます。
*****(数字5桁)_場所_ファイル名_処理した人の名前.doc
処理した人の名前フォルダがあるので、ファイル名にある名前部分と同様のフォルダへ振り分けたいと思っています。
(名前の重複はありません。)
No.1
- 回答日時:
bat はわからないですがVBAなら可能ではないでしょうか?
ただわざわざ移動のためにVBA(Excelなどを起動)でやるのもどうかと思いますけど。
Yahoo!知恵袋とかにはVBSをメインに回答されている方もいるようですので、そっちを使う方が楽かな?
あと移動した時にファイル名にはフォルダ名が残っていても良いのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【VBA】フォルダAにある2つのファイルの内1つを、フォルダBへ。もう1つを、フォルダBへ移動したい 6 2022/07/26 08:51
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- システム vba シートの追加について 2 2023/05/17 15:58
- Excel(エクセル) 1つのファイルを複数のフォルダにファイル名を【明日の日付】にして、コピーしたい 5 2022/12/13 20:11
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Excel(エクセル) 1つのファイルを複数のフォルダにファイル名を【明日の日付】にして、コピーしたい 5 2022/12/13 04:23
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
URL正規化・www付き、無しそれ...
-
VB6.0 FileListBoxでフォルダ表示
-
[C#]FolderBrowserDialogのタイ...
-
ExcelのVBAでフォルダ指定がで...
-
ExcelVBAでフォルダへのハイパ...
-
Wallpaper Engineでおすすめの...
-
アクティブシートを別のフォル...
-
マクロでネットワークドライブ...
-
C#)フォルダを参照したい
-
複数階層にまたがる別名称フォ...
-
カレントフォルダって?
-
バッチファイルに詳しい方、お...
-
Windowsで任意のフォルダにある...
-
エクセルのマクロ 保存フォル...
-
フォルダの削除
-
MFC、フォルダの中のファイルパス
-
robots.txtの書き方
-
実行中にフォルダ共有を行い、...
-
Delphi ShellTreeView
-
Javaでフォルダ複数階層のZipフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
会社のネットワーク上のファイ...
-
パス名に2バイト文字(マルチバ...
-
デスクトップの画像をhtmlに表...
-
【マクロ】ファイル名の日付に...
-
C ファイル出力で、フォルダが...
-
ファイル名と同名のフォルダを...
-
Excelのハイパーリンクについて...
-
VBA 最新のフォルダ取得
-
Excelで指定したフォルダに保存...
-
VBAでファイル名を指定して保存...
-
Access VBA で フォルダ権限...
-
サーバ内のフォルダ名と各フォ...
-
excelマクロ 冒頭3文字が一致す...
-
VBA フォルダ名に特定の文字を...
-
カレントフォルダって?
-
Excel VBA マクロ フォルダ名を...
-
VBA フォルダの複数選択ができない
-
ExcelVBAでフォルダへのハイパ...
-
ExcelのVBAでフォルダ指定がで...
おすすめ情報