
下記のマクロコードをご覧ください!!!
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も見ています
-
電子書籍プレゼントキャンペーン!
最大2万円超分当たる!マンガや小説が読める電子書籍サービス『Renta!』で利用できるギフトコードプレゼント実施中!
-
【マクロ】ファイルを古い順に、1個ずつ移動する
Excel(エクセル)
-
Excel マクロで For 文のインデックスを先に宣言する理由
Excel(エクセル)
-
エクセルの住所から郵便番号を表示するには
Excel(エクセル)
-
4
エクセル VBA For Next 繰り返しの書き方を教えてください
Excel(エクセル)
-
5
VBAでのフルパスの取得
Visual Basic(VBA)
-
6
マクロか関数で処理したいのですが、教えて頂けませんか。
Excel(エクセル)
-
7
VBAで、㉑という数値が、正しく、入力できない
Excel(エクセル)
-
8
電卓は正しいのに エクセルで計算させると間違った答えです。なぜ?
Excel(エクセル)
-
9
【EXCEL】=セル&セルが上手く表示できない。
Excel(エクセル)
-
10
マクロを簡潔にしたい
Excel(エクセル)
-
11
VBA エラーの件
Excel(エクセル)
-
12
エクセルデーターの並び替え
Excel(エクセル)
-
13
【VBA】印刷マクロのループ処理が反映されません
Visual Basic(VBA)
-
14
widows11のメモ帳でExcelのTXTファイルを開きたい
Excel(エクセル)
-
15
Formulaプロパティーを使ってセルに数式を組んだのですが簡潔にしたい。
Excel(エクセル)
-
16
Excelマクロ(VBA)CELL形式とA1形式の使い分け
Excel(エクセル)
-
17
エクセルVBAでオブジェクトが必要です
Excel(エクセル)
-
18
Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい
Excel(エクセル)
-
19
初めての質問。
Excel(エクセル)
-
20
エクセル、日々の集計整理方法。(再送です。)
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
このカテゴリの人気Q&Aランキング
-
4
エクセルで、変な矢印がでて、...
-
5
あるセルに特定の文字列を打つ...
-
6
VBA オリジナル関数で選択セル...
-
7
エクセルのA1~A5の任意のセル...
-
8
EXCELで2つの数値のうち大きい...
-
9
セル入力文字が、「右のセルに...
-
10
VBAで保存しないで閉じると空の...
-
11
EXCELで2列を参照し、重複する...
-
12
EXCELで特定のセルに表示...
-
13
Excelで隣のセルと同じ内容に列...
-
14
値が入っているときだけ計算結...
-
15
(Excel)あるセルに文字を入力...
-
16
【Excel関数】UNIQUE関数で"0"...
-
17
エクセルのセル内に全角数字を...
-
18
エクセル: セルの枠を超えて表示
-
19
グラフの横・縦項目が全部表示...
-
20
エクセルウィンドウのサイズ変...
おすすめ情報
公式facebook
公式twitter