
タイトルの件、ご存じの方は教えて下さい。
フォルダAの中には、エクセル、ワード、PDFの複数のファイルが入ってきます
数は5~10個でランダムです。
そこから、どれでもいいので、1つだけのファイルを
Bフォルダへ移動するVBAご存じの方、教えて下さい。
出来たら、複数あるファイルから1つだけ移動する選定
基準は、更新日時が古いものを、移動したいです。
ご存じの方、宜しくお願い致します。
【フォルダAのパス】
C:\Users\2020\Desktop\フォルダA
【フォルダBのパス】
C:\Users\2020\Desktop\フォルダB
No.2ベストアンサー
- 回答日時:
No1です。
>Q13061880() の名前も関係あるんですか?
関係ありません。
変更する際に、何か別の部分も変えていたりしませんか?
>どのような練習をすれば出来るようになりますか?
私自身では、ほぼVBAを使いませんし独学です。
練習と言えば、ここの質問に回答してみるくらいです。
(それなりの練習にはなっているのかもしれません)
記憶もしていませんので、この回答を作成する際にも、M$DNで調べながら作成しています。
https://docs.microsoft.com/ja-jp/office/vba/api/ …
参考書を読んだことはありませんが、上記サイトはよく利用します。
ご質問の内容も、それだけを書けばさほどのものではないのですが、「指定フォルダが存在しない場合」、「コピー先に同名のファイルが既に存在する場合」なども考慮してゆくと、ほとんど必要ない(かも知れない)コードが増えて、思ったよりも長いものになってしまいました。
No.1
- 回答日時:
こんにちは
まともにやると、それなりに面倒ですね。
ざっと、こんな感じでしょうか?
Sub Q13061880()
Dim f, fo, dt As Date, i As Long
Dim fn As String, ex As String, tmp As String
Const pathA = "C:\Users\2020\Desktop\フォルダA"
Const pathB = "C:\Users\2020\Desktop\フォルダB"
With CreateObject("Scripting.FileSystemObject")
If Not (.FolderExists(pathA) And .FolderExists(pathB)) Then
MsgBox "指定フォルダが存在しません"
Exit Sub
End If
dt = Now + 1
For Each f In .getfolder(pathA).Files
If f.DateLastModified < dt Then
dt = f.DateLastModified
Set fo = f
End If
Next f
If Not fo Is Nothing Then
ex = "." & .GetExtensionName(fo.Name)
fn = Left(fo.Name, Len(fo.Name) - Len(ex))
tmp = .BuildPath(pathB, fn & ex)
i = 1
While .FileExists(tmp)
i = i + 1
tmp = .BuildPath(pathB, fn & "(" & i & ")" & ex)
Wend
.MoveFile fo.path, tmp
End If
End With
End Sub
ありがとうございます。ちゃんと動きました。
2つ質問です。
●マクロの名前を変更したら、うごきませんでした。
Q13061880() の名前も関係あるんですか?
●こんなにすぐおいVBAはどのような練習をすれば
出来るようになりますか?
⇒オススメの参考書とかありますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
デスクトップの画像をhtmlに表...
-
【マクロ】フォルダにファイル...
-
SHBrowseforfolderについて質問...
-
条件に合うフォルダが存在する...
-
EXPLORERで開いているフォルダ...
-
エクセルのデータをメモ帳に貼...
-
Excel VBA マクロ 画像の貼り付け
-
フォルダのサイズを一覧にした...
-
(C#)フォルダを指定するダイ...
-
Windows10でコマンドプロンプト...
-
マクロVBAのフォルダ階層別で検...
-
Excel2000のVBAについて
-
ホームページビルダー2001
-
カレントフォルダって?
-
集めたシートのシート名を変更...
-
Excel VBA マクロ フォルダ名を...
-
全サブフォルダのファイルの取得
-
ExcelのVBAでフォルダ指定がで...
-
パス名に2バイト文字(マルチバ...
-
API関数(DLL)の呼び出しにお...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
会社のネットワーク上のファイ...
-
ファイル名と同名のフォルダを...
-
デスクトップの画像をhtmlに表...
-
VBA 最新のフォルダ取得
-
VBA フォルダ名に特定の文字を...
-
Access VBA で フォルダ権限...
-
ディレクトリ名変更してコピー...
-
excelマクロ 冒頭3文字が一致す...
-
Excelで指定したフォルダに保存...
-
パス名に2バイト文字(マルチバ...
-
ExcelのVBAでフォルダ指定がで...
-
excel VBA Dirにて検索したフォ...
-
【マクロ】ファイル名の日付に...
-
VBA フォルダの複数選択ができない
-
Excelのハイパーリンクについて...
-
あるフォルダーのファイルを違...
-
C ファイル出力で、フォルダが...
-
フォルダを開いて、閉じるのプ...
-
ThisWorkbookがあるフォルダ更...
おすすめ情報