
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ランキング
-
ヤフーのNYダウの過去データ...
-
ASPでCSVファイルを作成しダウ...
-
複数のテキストファイルをexcel...
-
Excelでdatファイルを作成??
-
サンダーバードでの新規にフォ...
-
VBAでファイルパスが長すぎてコ...
-
Microsoft Access エラー 3051
-
ダウンロード不可PDFファイルは...
-
バッチによるショートカットの...
-
【Excel VBA】PDFを作成して,...
-
BASP21のアップロードについて
-
マイドキュメントにマイビデオ...
-
Outlook Express アドレス帳の...
-
Excel-VBA 撮影日時の取得
-
フォルダ作成用バッチファイル...
-
ExcelVBAで、隠しフォルダにあ...
-
batファイル処理でのテキストフ...
-
Access2003で「オブジェクト'○○...
-
バッチファイルが作成できない
-
エクセルVBA フォームを開く時...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
OpenTextFile で書き込みできま...
-
ASPでCSVファイルを作成しダウ...
-
CSVファイルダウンロードダイア...
-
IE6でのダウンロードダイア...
-
ファイルダウンロードの開くで...
-
ファイルのダウンロード
-
Excelでdatファイルを作成??
-
複数のテキストファイルをexcel...
-
Microsoft Access エラー 3051
-
バッチファイルが作成できない
-
バッチによるショートカットの...
-
【Excel VBA】PDFを作成して,...
-
フォルダ作成用バッチファイル...
-
VBAでファイルパスが長すぎてコ...
-
ダウンロード不可PDFファイルは...
-
テキストファイルの文字色に色...
-
Access2003で「オブジェクト'○○...
-
FFFTPでサーバに新規フォルダが...
-
Webサイト アプリのコンパイル他
-
1フォルダに保存できるファイル...
おすすめ情報