
下記のマクロコードをご覧ください!!!
AフォルダとBフォルダの場所や名前は
絶対に変わらないと、仮定すると下記コードは
削除しても動きますか?
やりたい事は、なるべく、コードを削除して
短いコードに変更したいです。
【削除したいコード】
If Not (.FolderExists(pathA) And .FolderExists(pathB)) Then
MsgBox "指定フォルダが存在しません"
Exit Sub
End If
【マクロ内容】
Aフォルダから、Bフォルダに、ファイル【PDF等】を
古い順に、1回実行するごとに、移動する
※動きます
【マクロ コード】
Sub フォルダAから時系列で1つずつフォルダBへ移動する()
Dim f, fo, dt As Date, i As Long
Dim fn As String, ex As String, tmp As String
Dim pathB As String
Const pathA = "C:\Users\user\Desktop\フォルダA"
pathB = "C:\Users\user\Desktop\フォルダB"
With CreateObject("Scripting.FileSystemObject")
If Not (.FolderExists(pathA) And .FolderExists(pathB)) Then
MsgBox "指定フォルダが存在しません"
Exit Sub
End If
If .getfolder(pathA).Files.Count = 0 Then
MsgBox "【ファイルが1つもありません】"
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
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんにちは
ご質問の意図がさっぱりわかりませんけれど・・・
>なるべく、コードを削除して短いコードに変更したいです。
元がさほど長いものとも思えないので、無駄な改行を削除すればそれなりに短くなると思いますが、そういうことでもないのでしょうから、推測できる範囲でなるべく短くしてみました。
Sub X()
A = "C:\Users\user\Desktop\フォルダA"
B = "C:\Users\user\Desktop\フォルダB"
Set S = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
For Each f In S.getfolder(A).Files
m = f.DateLastModified
If IsEmpty(t) Or m < t Then Set fo = f: t = m
Next
S.MoveFile fo.Path, B & "\" & fo.Name
If Err.Number > 0 Then MsgBox "不適処理!"
End Sub
No.2
- 回答日時:
マクロを理解している人が使うだけなら削除しても構いません。
それが誤っていたとしても実行エラーになるだけですから。
Msgboxにしているのは、マクロを知らない人が操作する時の親切表示です。
No.1
- 回答日時:
【削除したいコード】
'If Not (.FolderExists(pathA) And .FolderExists(pathB)) Then
'MsgBox "指定フォルダが存在しません"
'Exit Sub
'End If
コメント文にして試してみては?
そう言うのも勉強になりますよ。
削除しちゃうと戻すのが大変なのでコードの各行の先頭に ' を付ける。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows11のデスクトップアイコ...
-
フォルダをきるって?
-
ファイルを隠し設定していない...
-
Internet Explorer-11 を削除は...
-
一つ上の、フォルダだけを消す...
-
エクセル 図の挿入時の初期フ...
-
差し込み印刷が他人のPCでは...
-
すべてのプログラムからアクセ...
-
"Fax"フォルダと"Scanned Docum...
-
Program Files を2つ作ってしま...
-
『HP/nx6120』の“Swsetup”とい...
-
外付けSSDや外付けHDDにはフォ...
-
Outlook Expressを非表示にしたい
-
複数フォルダをまとめて移動す...
-
HDDの中身が見れない。。
-
Windows11なのですがPDFにパス...
-
フォトストーリーが使えない
-
jpegを開こうとするとWindows M...
-
ペイントの囲み線を消す
-
デスクトップのdesktop.iniが見...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows11のデスクトップアイコ...
-
ファイルを隠し設定していない...
-
フォルダをきるって?
-
外付けSSDや外付けHDDにはフォ...
-
複数フォルダをまとめて移動す...
-
エクセル 図の挿入時の初期フ...
-
『HP/nx6120』の“Swsetup”とい...
-
一つ上の、フォルダだけを消す...
-
Internet Explorer-11 を削除は...
-
ファイル名やフォルダ名の名前...
-
差し込み印刷が他人のPCでは...
-
連動しているピクチャのフォル...
-
エクスプローラーの「切り取り...
-
"Fax"フォルダと"Scanned Docum...
-
(再質問)Windows11を, Win10風...
-
フォルダを開くと勝手に新たな...
-
Program Files を2つ作ってしま...
-
del で確認なしで削除した
-
フォルダを意図した順番に並べたい
-
行の順序を左から右にします(G...
おすすめ情報