[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『過去日付ファイルを開きたい』(ピノ)
お世話になります。
VBAでファイル名に5日前の日付が付いている
ファイルを開きたいのですが、
ファイルは存在するのに、
ファイルが存在しないというエラーメッセージが出てしまいます。
構文を以下の通り、記載しましたが、
間違っている箇所が分かれば、教えていただけないでしょうか。
※エラーメッセージに5日前の日付は表示されるので、
日付は取れているようです。
Sub test ()
Dim 本日 As Variant '本日日付変数
本日 = Format(Date, "yyyymmdd")
'5日前のファイルを開く
開始日 = 本日 - 5
Workbooks.Open Filename:= _
"C:\Users\mi\Desktop\新しいフォルダー\ " & 開始日 & "発注表(05)" & ".xlsx"
End Sub
< 使用 Excel:Excel2016、使用 OS:Windows10 >
↓だと■のところに半角スペースがありますが、正しいのですか?
"C:\Users\mi\Desktop\新しいフォルダー\■" & 開始日 & "発注表(05)" & ".xlsx"
(もこな2) 2020/08/06(木) 21:56
■2
余談になりますが、提示されたコードでは「開始日」の宣言がされていません。
基本的に、変数の宣言は強制するように設定しておいたほうがよいでしょう。
http://officetanaka.net/excel/vba/beginner/06.htm
■3
提示されたコードで、↓のようになっている部分ですが、今回は偶然にうまくいったかもしれませんが
Format(Date, "yyyymmdd") - 5
Format(Date - 5, "yyyymmdd")
本来は↑でないとまずいでしょう。(試しに10日前にしてみればわかるかと思います)
Sub 実験() Debug.Print Format(Date - 10, "yyyymmdd") Debug.Print Format(Date, "yyyymmdd") - 10 End Sub
■4
ふまえて、コードを整理するとこんな感じでよいとおもいます。
Sub てきとー() Const MyPath As String = "C:\Users\mi\Desktop\新しいフォルダー" Dim buf As String
buf = Format(Date - 5, "yyyymmdd") & "発注表(05).xlsx" Workbooks.Open Filename:=MyPath & "\" & buf End Sub
(もこな2 ) 2020/08/07(金) 00:13
(もこな2 ) 2020/08/07(金) 00:19
変数宣言も失念しておりました。
ご教授いただいた変数宣言の強制設定、行いました!
そして、たまたまだったんですね…
正しい構文もありがとうございます…。
おかげさまで、希望の処理ができました。
有難うございました。
(ピノ) 2020/08/08(土) 00:07
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.