VBAマクロを使用して現在時間と、ファイルの作成時間を比較後、10分前以降に作成したファイルを開かないようにするマクロを作ろうとしています。
下記のような方法で、現在時間と、ファイルの作成時間を取得しましたが、比較する方法(差分を取る方法)がわかりません。
mydateは、2006,02,15,07,16
myfile_dtの方は、2006/1/18 1:11
のような形式で、表示されていますがこのような異なる形式で表示される時間を比較することが出来るのでしょうか。
比較する方法を教えてください。
Dim mydate as integer
Dim myfile_dt as integer
mydate = Format(Now(), "yyyy,mm,dd,hh,mm")
myfile_dt = FileDateTime("aaaa.csv")
No.1ベストアンサー
- 回答日時:
'バリアントにする
Dim mydate
Dim myfile_dt
mydate = Now() 'そのまま使う
myfile_dt = FileDateTime("aaaa.csv")
これで比較できるはず
ご回答ありがとうござました。
早速変数をバイリアントに変更しやってみたところうまくいきました。
ところが、下のようなプログラムを書いたところ、日にちが30日過ぎたファイルでも開いてしまいます。
プログラムに何か不具合があるのでしょうか。教えてください。
Dim mydate As Variant '現在時刻
Dim myfile_dt As Variant 'ファイル作成日
Dim mydiff As Variant '現在時刻-ファイル作成日
Dim t As Variant
t = 10 ’10日に設定
mydate = Now()
myfile_dt = FileDateTime("aaa.csv")
mydiff = mydate - myfile_dt
’ここで10日過ぎたファイルを開く場合終了させたい。
If (mydiff < 0) And (mydiff > t) Then Exit Sub
Workbooks.Open Filename:=("aaa.csv")
No.4
- 回答日時:
#3です
間違えましたorz
×mydiff = DateDiff("d", fileCreatedDate, Date)
↓
○mydiff = DateDiff("d", myfile_dt, Date)
No.3
- 回答日時:
日付/時刻の比較等に関しては「日付/時刻型」を使用するべきでは?
あと差分を求めるのであれば、日付関数を使用するべきです
例えば、こんな感じに
Dim myfile_dt As Date
Dim mydiff As Integer
myfile_dt = FileDateTime("aaaa.csv")
mydiff = DateDiff("d", fileCreatedDate, Date)
If mydiff > 10 Then Exit Sub
※動作検証していないです
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 09:24
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/01/23 17:13
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- その他(Microsoft Office) エクセルのマクロについて教えてください。 5 2023/01/21 09:39
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) 【マクロ】フォルダにファイルが1つも無い時に、ファイルがありませんとメッセージを表示する 4 2022/08/28 08:48
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ASPでCSVファイルを作成しダウ...
-
バッチによるショートカットの...
-
Excelでdatファイルを作成??
-
複数のテキストファイルをexcel...
-
バッチファイルが作成できない
-
HTMLタグのあるCSVファイルを利...
-
文字の頭文字順に自動移動
-
ダウンロード不可PDFファイルは...
-
VBAでファイルパスが長すぎてコ...
-
フォルダ作成用バッチファイル...
-
1フォルダに保存できるファイル...
-
.NET で C# を使い、他のソフト...
-
FileExitsについて
-
Windowsのメモ帳でジョークウイ...
-
社の中で私だけ2in1印刷ができない
-
Refreshで落ちる
-
HDDのクローン作成時の素朴な疑...
-
テキストファイルを開かずに中...
-
IS11SH本体電話帳→Google連絡先へ
-
Webサイト アプリのコンパイル他
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
OpenTextFile で書き込みできま...
-
ASPでCSVファイルを作成しダウ...
-
ファイルダウンロードの開くで...
-
ヤフーのNYダウの過去データ...
-
csv形式でダウンロードさせたい...
-
Matlabでの図の最大化の方法
-
現在時間と、ファイルの作成時...
-
Excelでdatファイルを作成??
-
VBAでファイルパスが長すぎてコ...
-
Microsoft Access エラー 3051
-
拡張子が.txtのファイルに将来...
-
複数のテキストファイルをexcel...
-
バッチによるショートカットの...
-
フォルダ作成用バッチファイル...
-
Lubuntuでフォントをインストー...
-
バッチファイルが作成できない
-
batファイル処理でのテキストフ...
-
【Excel VBA】PDFを作成して,...
-
Access2003で「オブジェクト'○○...
-
ファイル名の特定文字だけ削除...
おすすめ情報