![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
よろしくお願いいたします。
同じホルダ内に下記のようなファイル名で30程保存ファイルがあります。
28年度A店、 28年度B店、 28年度C店、 28年度D店、 ・・・・・・
29年度A店、 29年度B店、 29年度C店、 29年度D店、 ・・・・・・
集計ファイルが昨年度、今年度でマクロを組んでいる関係で、毎月集計の都度ファイル名を変更していますので、できればマクロを使って一括変更(置き換え)が出来ないかと思っています。
それで、毎年度使用できるように、例えばセルC5に28年度、セルC6に29年度と入力し、保存ファイル名の一部がセルC5と同じ部分を昨年度に、セルC6と同じ部分は今年度に保存ファイル名を下記のように変更(置き換え)するようなマクロを希望しています。
昨年度A店、 昨年度B店、 昨年度C店、 昨年度D店、 ・・・・・・
今年度A店、 今年度B店、 今年度C店、 今年度D店、 ・・・・・・
このような保存ファイル名の変更(置き換え)は可能でしょうか?。
どなたか、よろしくお願いいたします。
No.5ベストアンサー
- 回答日時:
>実行時エラー”76” パスがみつかりません となり中断してしまいます。
まず "D:\test" これはDドライブにあるtestと言うフォルダを指す物ですが、デスクトップはCドライブなので、そもそもの保存されている場所が違いますね。
あとデスクトップは特殊フォルダ
・特殊フォルダを取得(wsh.SpecialFolders)
http://excelwork.info/excel/specialfolder/
になりますね。
取り敢えず修正版。
Sub test_2()
Dim FSO As Object
Dim OldName
Dim PathName As String
Set FSO = CreateObject("Scripting.FileSystemObject")
PathName = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\各店集計"
For Each OldName In FSO.GetFolder(PathName).Files
If IsNumeric(StrConv(Left(OldName.Name, 1), vbNarrow)) Then
Select Case True
Case InStr(OldName, Range("C5").Value) > 0
Name OldName As Replace(OldName, Range("C5").Value, "昨年度")
Case InStr(OldName, Range("C6").Value) > 0
Name OldName As Replace(OldName, Range("C6").Value, "今年度")
End Select
End If
Next
Set FSO = Nothing
End Sub
ついでです。
Sub xyz()
'もし興味があればデスクトップフォルダがどのように表示されるか
'見てみて下さい。
MsgBox CreateObject("WScript.Shell").SpecialFolders("Desktop")
End Sub
めぐみん様
早速のご教示ありがとうございました。
期待どおりにファイル名の変更がされました。
早速活用させていただきます。
仕事の時間がかなり短縮できます。
本当にありがとうございました。
No.4
- 回答日時:
No.3です。
>For Each OldName In FSO.GetFolder("D:\test").Files
ここの "D:\test" はそちらの実際のフォルダ名に修正して下さい。
No.3
- 回答日時:
一例になれば。
Sub test()
Dim FSO As Object
Dim OldName
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each OldName In FSO.GetFolder("D:\test").Files
If IsNumeric(StrConv(Left(OldName.Name, 1), vbNarrow)) Then
Select Case True
Case InStr(OldName, Range("C5").Value) > 0
Name OldName As Replace(OldName, Range("C5").Value, "昨年度")
Case InStr(OldName, Range("C6").Value) > 0
Name OldName As Replace(OldName, Range("C6").Value, "今年度")
End Select
End If
Next
Set FSO = Nothing
End Sub
No.1
- 回答日時:
『年度』の定義が必要でしょうね。
4月1日~翌年3月31日を『年度』と言う会社とかありますしね。
単純に1月1日~12月31日とカレンダーそのものと同じなのかどうかと、元号の変更に伴うであろう年数のリセットについても。
(西暦ならそのままでしょうけど)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelのマクロについてご教授ください 2 2023/02/25 09:43
- その他(Microsoft Office) エクセルのマクロについて教えてください。 5 2023/01/21 09:39
- その他(Microsoft Office) エクセルの休日について教えてください。 1 2023/01/06 15:45
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Excel(エクセル) エクセルのフッタやヘッダーについて 3 2023/02/04 09:45
- Visual Basic(VBA) エクセル VBAについて教えてください 2 2023/04/26 13:25
- その他(Microsoft Office) ワードのマクロについて教えてください。 1 2023/01/21 16:01
- Visual Basic(VBA) VBAで自動集計(特定セルコピー月ごとに値貼り付け)したい。 6 2023/06/25 11:37
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
Excel内での検索結果をシート...
-
エクセル 数字をすべて○などの...
-
Excelで、図形内の文字をセルに...
-
マクロを実行すると画像がズレ...
-
エクセルでPDFリンクを大量...
-
VBA 見つからなかった時の処理
-
現在のセルの位置を返す関数は...
-
エクセルでページ数をあるセル...
-
太字に設定されているセルの個...
-
Excelで挿入した図をセルの中央...
-
セルがクリックされた回数をカ...
-
フォントの色を指定して削除出...
-
エクセル 未入力セルがあると...
-
Excel2007 色のカウント (VBA)
-
クリックすると文章が表示され...
-
Excel ハイパーリンクのURLを別...
-
エクセル シート保護された共...
-
エクセルでの検索ボックスの作...
-
シート保護とグループ化機能を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
エクセル 数字をすべて○などの...
-
Excel内での検索結果をシート...
-
太字に設定されているセルの個...
-
クリックすると文章が表示され...
-
Excelで挿入した図をセルの中央...
-
【マクロ】ファイル名の変更に...
-
Excelで、図形内の文字をセルに...
-
マクロを実行すると画像がズレ...
-
Excel ハイパーリンクのURLを別...
-
フォントの色を指定して削除出...
-
Excelでセルをクリックす...
-
Excel2007 色のカウント (VBA)
-
エクセルでの検索ボックスの作...
-
現在のセルの位置を返す関数は...
-
エクセル マクロ チェックボックス
-
VBA 見つからなかった時の処理
-
アポストロフィーの一括挿入 ...
-
エクセルでPDFリンクを大量...
-
セルの値が変ると自動でマクロ...
おすすめ情報
ご教示、ありがとうございます。
ホルダは常にデスクトップ上に置いており、ホルダ名は「各店集計」ですが
For Each OldName In FSO.GetFolder("D:\各店集計").Files
の部分が黄色になり 実行時エラー”76” パスがみつかりません となり中断してしまいます。
何処が悪いのでしょうか、よろしくお願いいたします。