重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

【やりたい事】
名前を付けて、保存をしていない、エクセルファイルを変数に入れたい
可能であれば、コードorアドバイスをお願いします

Web(マイクロソフトエッジ)上で動くシステムから開くボタンをクリック
その後、windows10のダウンロードボタンをクリック
保存or開くかの選択画面を表示⇒開くをクリック

ファイル名は 202504011001データ
⇒ファイル名の先頭の時間の部分はダウンロードした時間となります
⇒202504011001
⇒ファイル名の先頭部分は毎回、変わります
※システムの為、名前は常に作成されている為、見えない所でどこかに、保存されているのかもしれないです


【参考:ファイルを変数に入れるコード】
Cells(1, 1)には⇒普段は次のとおりパスが書いてあります C:\Users\2020\OneDrive\あいうえお.xlsx

Dim filepath1 As String

Dim wb1 As Workbook

Dim ws1 As Worksheet


filepath1 = ThisWorkbook.Worksheets("Sheet1").Cells(1, 1)

Set wb1 = Workbooks.Open(filepath1)

Set ws1 = wb1.Worksheets("Sheet1")

A 回答 (1件)

こんにちは



ご質問の意味がよくわかりませんけれど・・
『別ブックにあるマクロから、対象としたいブックオブジェクトを取得したい』ということだと解釈しました。


対象とするブック名がわかりそうなので、それを利用して特定すれば良いのではないでしょうか?

>ファイル名は 202504011001データ
>⇒ファイル名の先頭の時間の部分はダウンロードした時間となります
>⇒ファイル名の先頭部分は毎回、変わります
どこまでが可変で、どこからが固定なのかわかりませんけれど・・
なんとなくの推測では、20250401が日付で、1001が時刻(時分)かな?
固定長で8文字+4文字とかの規則があるのなら、それで識別できそうな気がしますけれど?

処理するタイミングもわかりませんが「保存していない」とのことなので、ほぼ同時期と推測されますから、処理の時刻以前となっているファイル、あるいは同時に何ファイルも開かないことが分かっているような種類の処理なら、日付部分の照合だけでも特定できそうに思います。
(ほとんど勝手な推測レベルなのでよくわかりませんけれど、質問者様は条件をご存じでしょうから、きちんと判断できると思います。)

マクロのあるブックが、対象ファイルと同一スレッドで開いているとしてよいのなら、Workbooksオブジェクトの各ブック名を走査して、該当するブックを探せばすむ話と思います。
別スレッドの場合はちょっと厄介で、まず、API等を利用してエクセルのハンドルを取得することになりますが、そこから後は同様の方法で可能であろうと推測します。
    • good
    • 1
この回答へのお礼

アドバイスありがとうございます。参考になりました

>どこまでが可変で、どこからが固定なのかわかりませんけれど・・
>なんとなくの推測では、20250401が日付で、1001が時刻(時分)かな?
>固定長で8文字+4文字とかの規則があるのなら、それで識別できそうな気>がしますけれど?

お礼日時:2025/04/17 07:44

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

今、見られている記事はコレ!