教えて!gooにおける不適切な投稿への対応について

初めまして。VBS初心者です。

以下実行したいのですが、最新更新日付のVBAを開く方法がわからず・・・コードをご教授頂きたいです。
<処理>
①フォルダ内(指定パス\YYYYMMDD\)にある更新日時が最新のVBAファイル(.xlsm)を開く
②マクロ実行
 ※マクロの処理で指定パスに新しく実行日フォルダ(YYYYMMDD)が作成され、そこに最新のVBAが格納されます。毎回、前回実施分の更新日時が最新のファイルを開いてマクロを実行したいです。

VBAを動かす処理は調べたのですが、どう最新更新日付のファイルを探して開くのかコードがわからない状態です。
<現在の実装>
' VBAを起動して実行
Dim objExcel

' Excelのオブジェクトを作成
Set objExcel = CreateObject("Excel.Application")

' Excel非表示
objExcel.Application.Visible = True
' Excelブックのパスとシート名を選択
objExcel.Workbooks.Open("実行フォルダ\ファイル名.xlsm")

' 実行するマクロ名を指定
objExcel.Application.Run "test"

objExcel.Workbooks.Close
objExcel.Application.Quit

Set objExcel = Nothing

よろしくお願いいたします。

gooドクター

A 回答 (1件)

こんにちは



指定フォルダ内の.xlsmファイルで、DateLastModifiedが最新のものを探せばよいということと解釈しました。
こんな感じでしょうか?

Dim fso, file
Dim d, d1, fp

Const folderPath = "C:\Users\UserName\data" '指定フォルダ

Set fso = CreateObject("Scripting.FileSystemObject")
For Each file In fso.getFolder(folderPath).Files
If Right(file.Name, 5) = ".xlsm" Then
d1 = CDate(file.DateLastModified)
If d < d1 Then
fp = file.Path
d = d1
End If
End If
Next

MsgBox fp
    • good
    • 3
この回答へのお礼

助かりました

fujillinさん

早急に教えて頂き、ありがとうございます!!

追加でお伺いしたいのですが、上記で探した.xlsmファイルを以下の()内に代入することは可能なのでしょうか・・?
objExcel.Workbooks.Open("実行フォルダ\ファイル名.xlsm")

お手数をおかけしますがお答え頂けると幸いです。。

お礼日時:2021/02/26 21:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング