[[20200806214553]] 『過去日付ファイルを開きたい』(ピノ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『過去日付ファイルを開きたい』(ピノ)

お世話になります。
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様
有難う御座います!
すみません、半角スペースに気付いていませんでした…
無くしたら、きちんと開くことができました。
大変失礼しました。ご指摘ありがとうございました!
(ピノ) 2020/08/06(木) 22:28

■1
結局いつもの"タイプミス"でしたか・・・
おかしいな?とおもったらステップ実行してチェックしてみたり、イミディエイトで何が返ってくるか確かめたりして、自分でデバッグ作業をされるとよいとおもいます。

■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


■3について、コメントつけていたら、問題があることには、自分で気づかれたようですね・・・
[[20200806235620]] 『ファイル名が可変日付のファイルをフォルダ移動したい』(ピノ)

(もこな2 ) 2020/08/07(金) 00:19


もこな2様
いつもありがとうございます。
いつものタイプミスで大変失礼いたしました。
デバック検証をきちんとできるように心がけます。
イミディエイトウィンドウとローカルウィンドウ、使いこなせるように頑張ります。

変数宣言も失念しておりました。
ご教授いただいた変数宣言の強制設定、行いました!

そして、たまたまだったんですね…
正しい構文もありがとうございます…。
おかげさまで、希望の処理ができました。
有難うございました。
(ピノ) 2020/08/08(土) 00:07


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.