
【やりたい事】
・フォルダAからダBへファイルを、マクロで、1つづつ移動する
⇒ボタン1回おすと1つ移動するイメージ
⇒もう1回、押すと、次の1つを移動する伊目地
・違う種類のPDFファイルがフォルダAに常に5~10個あるイメージ
・ファイルの更新日時【古いものから先に移動】の順番で
フォルダAからフォルダBへ移動したい
・上記の条件を満たした、マクロが【参考2】です。動きます。
※【参考2】は、教えてgooにて、教授いただきました
【教えて欲しい事】
・フォルダAとフォルダBのパスが【参考1-A】であれば、参考2のマクロで
できます。しかし、【参考1-B】のフォルダパスだとどのように
VBAを記述すれば良いかわかりません
ご存じのかた、いましたら、教えて下さい
【補足】
・【参考3】のマクロは、フォルダAとフォルダBを一発で開くマクロです。
⇒こちらは動きます。
・【参考3】のフォルダAとフォルダBのパスで【参考2】のマクロを
動かしたいです
※参考3は、教えてgooにて、教授いただきました
・フォルダパスに半角スペースが入っている場合の
→参考2のマクロの動かし方が分からないという質問です
【参考1-A】
【VBAの書き方が分からるフォルダAとフォルダBのパス】
C:\Users\2020\Desktop\フォルダA
C:\Users\2020\Desktop\フォルダB
【参考1-B】
【VBAの書き方が分からないフォルダAとフォルダBのパス】
C:\Users\user\Desktop\Aフォルダ
C:\Users\user\Desktop\㉖ あいうえお\フォルダB
※㉖とあいうえおの間に半角スペースあり
※㉖は環境依存文字という種類の為次のように書く " & ChrW(12886) & "
【参考2】
Sub フォルダAから時系列で1つずつフォルダBへ移動する()
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
【参考3】
Const 半角スペース = """"
Sub sample()
Dim Apath As String
Dim Bpath As String
'Apathのフォルダパスは C:\Users\user\Desktop\Aフォルダ
Apath = "C:\Users\user\Desktop\Aフォルダ"
'Bpathのフォルダパスは C:\Users\user\Desktop\? あいうえお\フォルダB
'上記の?マークはまる26という環境文字です。VBA記述不可の為
'" & ChrW(12886) & "を変わりに記述しています
'" & ChrW(12886) & "とあいうえおの間には半角スペースが入っています
Bpath = "C:\Users\user\Desktop\" & ChrW(12886) & " あいうえお\フォルダB"
CreateObject("WScript.Shell").Run 半角スペース & Apath & 半角スペース
CreateObject("WScript.Shell").Run 半角スペース & Bpath & 半角スペース
End Sub
No.2ベストアンサー
- 回答日時:
連投すみません
Const pathB = "C:\Users\2020\Desktop\フォルダB"
ここの書き方かな?
定数にChrW(12886)は設定できないので
String型変数にして
Dim pathB As String
pathB = "C:\Users\user\Desktop\" & ChrW(12886) & ChrW(160) & "あいうえお\フォルダB"
ChrW(160)ではなく【参考3】の書き方でもOK?
No.3
- 回答日時:
読解力が無く申し訳ないです
初め、半角スペースが読めないのかな と思いました・・
が、【参考2】のコードが動いていて変更する方法だったので#2です
>Q1.今回、教授いただいたいのは、フォルダパスを定数から変数に変更した事なのでしょうか?
仰る通り、そのような事になります。
半角スペースと言うとChr(32) か ChrW(160) だったと思いましたが
pathB = "C:\Users\user\Desktop\" & ChrW(12886) & ChrW(160) & "あいうえお\フォルダB" は ダメなのですね
試していないので お手数をお掛けいたしました
大変、助かりました。ありがとうございました。また、別のファイル移動のマクロについて、質問いたします。
内容は、今回と同様に動いているコード【マクロ】を変更する方法
についてです。
変更の内容は今回、同様に、フォルダパスの変更です。
お目につきましたら、宜しくお願い致します。
No.1
- 回答日時:
こんにちは
【参考1-B】のフォルダパスだとどのようにVBAを記述すれば良いかわかりません
Bpath = "C:\Users\user\Desktop\" & ChrW(12886) & " あいうえお\フォルダB"
だとダメと言う事ですね
半角スペースが上手く処理できないと言う事かな・・
半角スペース Chr(32)を使うかChrW(160)を使うか・・
Bpath = "C:\Users\user\Desktop\" & ChrW(12886) & ChrW(160) & "あいうえお\フォルダB"
かな
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロのコードを、少しでも削って短くしたい 3 2022/08/30 07:46
- Visual Basic(VBA) 【マクロ】フォルダにファイルが1つも無い時に、ファイルがありませんとメッセージを表示する 4 2022/08/28 08:48
- Excel(エクセル) 【マクロ】フォルダを3つ、POモニター上に、決まった並べ方をしたい 4 2022/08/31 11:05
- Excel(エクセル) 【マクロ】フォルダを2つのモニターの定位置に並べたい 2 2022/09/02 01:14
- Android VBA、フォルダのパスに環境文字 ㉑ があり、VBAが機能しません。 2 2022/07/27 09:16
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
- Excel(エクセル) 【マクロ】ファイルを古い順に、1個ずつ移動する 1 2022/09/06 20:30
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Excel(エクセル) 【VBA】ファイルパスに半角スペースが入ると、VBAが動かない 5 2022/08/04 20:52
- Excel(エクセル) 【VBA】フォルダAにある2つのファイルの内1つを、フォルダBへ。もう1つを、フォルダBへ移動したい 6 2022/07/26 08:51
関連するカテゴリから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でフォルダ指定がで...
おすすめ情報
ありがとうございます。動くマクロが作れました。
なお、ChrW(160) は動きませんでした
Q1.今回、教授いただいたいのは、フォルダパスを
定数から変数に変更した事なのでしょうか?
【ポイント】
定数にChrW(12886)は設定できない
String型変数にして
Dim pathB As String
【動いた】
Dim pathB As String
pathB = "C:\Users\user\Desktop\" & ChrW(12886) & " あいうえお\フォルダB"
【動かなかった⇒指定フォルダが存在しません とメッセージボックスが表示】
Dim pathB As String
pathB = "C:\Users\user\Desktop\" & ChrW(12886) & ChrW(160) & "あいうえお\フォルダB"