こんにちは。
仕事でVBScriptを用いて定例作業を自動化させようと考えております。VBScriptの本を読んだり、パソコンで調べながら進めているのですが、初めてのことでなかなかうまくいきません。大変恐れ入りますが、どなたか教えていただけないでしょうか?
実行したい処理は以下のとおりです。
・月初に特定のフォルダにある特定のファイルをバックアップ用フォルダにコピーしてリネームする。
・リネームルールは「元ファイル名_前月月(mm).元拡張子」。
上司から催促され困っています。
よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
VBScript というよりも、FileSystemObject というコンポーネントの使い方について調べた方が良いね。
「リネームしながらコピー」は FileSystemObject オブジェクトの CopyFile メソッドでも良いけれど、対象ファイルを File オブジェクトとして参照していれば、File オブジェクトの Copy メソッドも利用できるし、新しいファイル名も File オブジェクトのプロパティを利用して加工できる。
abcd.txt の "abcd" の部分は FileSystemObject の GetBaseName メソッドで取得可能。
".txt" の部分は FileSystemObject の GetExtensionName メソッドで取得可能。
パス文字を組み立てる場合は単純な文字列結合でも良いが、FileSystemObject の BuildPath を使えば区切り文字を自動的に挿入してくれる。
何がうまくいかないのか全く想像できないので断片的に書いてみました。 参考程度に。
' コピー先フォルダーのパス
Dim destDirPath
destDirPath = "C:\backup"
' FileSystemObject
Dim fso
Set fso = CreateObject
' 前月の月 (mm) を生成
Dim previousMonth
previousMonth = Right("0" & Month(DateAdd("m", -1, Date)), 2)
' ここから下を「特定のフォルダー内にあるファイル群のうち、特定の条件に合致するファイル」 がある限りループさせる。
' コピー元ファイルを参照
Dim sourceFile
Set sourceFile = fso.GetFile("コピー元ファイルのパス")
' リネームしながらコピー
Dim newFilePath
newFilePath = fso.BuildPath(destDirPath, fso.GetBaseName(sourceFile.Name) & "_" & previousMonth & fso.GetExtensionName(sourceFile.name))
sourceFile.Copy newFilePath, True
No.1
- 回答日時:
特定のフォルダからファイル一覧をとる
https://msdn.microsoft.com/ja-jp/library/cc42810 …
目的のファイル名であるか調べる
https://msdn.microsoft.com/ja-jp/library/cc39242 …
コピーしてリネームする
https://msdn.microsoft.com/ja-jp/library/cc42801 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/26 17:13
- Excel(エクセル) ファイル一覧表を使ったファイルの移動 5 2022/08/10 15:37
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/10 09:06
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- PDF PDFを自動添付したメールを送信してくれるツールを探しています。 2 2023/02/07 15:19
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
frxファイルの役目
-
エクセルのハイパーリンクがコ...
-
ファイルサーバ上のファイルが...
-
バッチファイル XCOPYで上書き...
-
バッチファイル 別ファイルにリ...
-
アクセス クエリを別のファイ...
-
エクセルVBAで開いているファイ...
-
ExeclVBAユーザーフォームから...
-
Vba初心者です。下記のコード助...
-
bat 同名ファイルコピー時にリ...
-
バッチファイルのコピーで
-
最新更新日のBATファイルコピー...
-
エクセル2010、図が大きすぎま...
-
FSO.CopyFileでのエラー無視方法
-
FTPとファイルコピーの違いにつ...
-
エクセルのマクロについて教え...
-
[エクセル]コピーするとオブジ...
-
バッチファイルの変数について
-
エクセル 同じデータなのに違う...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
エクセルのハイパーリンクがコ...
-
バッチファイル XCOPYで上書き...
-
バッチファイル 別ファイルにリ...
-
frxファイルの役目
-
ファイルサーバ上のファイルが...
-
バッチファイルのコピーで
-
Vba初心者です。下記のコード助...
-
xcopyでのバッチコピー方法でコ...
-
同じファイル名 上書きしないフ...
-
エクセルVBAで開いているファイ...
-
エクセル2010、図が大きすぎま...
-
vbsでExcelのシートをコピーす...
-
アクセス クエリを別のファイ...
-
bat 同名ファイルコピー時にリ...
-
[エクセル]コピーするとオブジ...
-
ワード 一部のページだけをpdf...
-
パワポでスライドをコピーでき...
-
FSO.CopyFileでのエラー無視方法
-
VBSで作成したフォルダにファイ...
おすすめ情報