• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Open Filenameで変わるファイル名を開く)

vbaで変わるファイル名を開く方法

このQ&Aのポイント
  • スマホアプリで作成したデータをパソコンのExcelから開く方法について教えてください。vbaを使用して操作したいのですが、アプリでエクスポートされたファイル名が日々変わるため、どのように指定すればよいかわかりません。
  • 現在、毎日ファイル名を手動で入力して開いていますが、効率的な方法があれば教えてください。
  • ファイル名の変わる部分をワイルドカードやプレースホルダーで指定する方法があれば、詳しく教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

cal-excel-160906.xlsの数値部分がyymmddで実行当日でしたら Workbooks.Open Filename:="C:\Users\closeinlove\Dropbox\アプリ\ExcelCalendarLite\cal-excel-" & Format(Date, "yymmdd") & ".xls" でいけます。深夜に作業する場合、エクスポートが24時前でマクロ実行が24時を超えた時にはエラーになりますので、開く前にファイルの存在の有無を確認したほうがいいと思われます。 以下のページを参考にして確認してください。 http://officetanaka.net/excel/vba/file/file06.htm

crossinlove
質問者

お礼

動作確認できました。 ありがとうございます。

その他の回答 (3)

  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.4

そのフォルダの中には、エクセルのファイルが複数あると思うので、多分、この方法はダメなのですが、もし、エクセルファイルは、目的のファイル1つしか存在しない(エクセル以外のファイルはあっても可)のでしたら、 Set s = CraeteObject("Scripting.FileSystemObject") Set f = s.GetFolder("C:\Users\closeinlove\Dropbox\アプリ\ExcelCalendarLite") For Each n In f.Files e = LCase(s.GetExtensionName(n.Name)) If e = "xls" or e = "xlsx" Then Workbooks.Open f & "\" & n.Name End IF Next これで、「f」に格納されたフォルダ(C:\Users\closeinlove\Dropbox\アプリ\ExcelCalendarLite)の中のすべてのファイルを「For Each n In f.Files」で調べてゆき、拡張子が「xls」または「xlsx」のファイルがみつかると、「Workbooks.Open」で開いていきます。 何度も言いますように、フォルダ内にあるすべてのエクセルファイル(拡張子が「xls」または「xlsx」ファイル)を次々に開いてしまいます。

crossinlove
質問者

お礼

CraeteObjectはユーザ定義変数でしょうか。 そこら辺勉強不足で申し訳ありません。 ありがとうございます。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.3

No2です。 もしファイル名の数値の部分が当日ではないとか、実行時に数値部分を特定できる規則的な何かがない場合には、ファイルを開くダイヤログを出して開く方法があります。 以下のページを参考にしてください。 http://officetanaka.net/excel/vba/file/file02.htm

crossinlove
質問者

お礼

Dir関数は、そのファイル名を返すのが使えそうです。 ありがとうございます。

  • mitoneko
  • ベストアンサー率58% (469/798)
回答No.1

 今日の日付でファイルを自動的に取得すれば良いのであれば・・・ Workbooks.Open Filename:="C:\Users\closeinlove\Dropbox\アプリ\ExcelCalendarLite\cal-excel-"&YEAR(TODAY())&MONTH(TODADY())&DAY(TODAY())&".xls"  のような感じで、変わるところに、変わる文字列を自動で入れてあげれば、いけませんか。  もし、昨日の日付が欲しいなら、日付関数の所を昨日に書き換えればいけます。  ??????のところが、もっと複雑なルールになるようであれば、いったん、??????の部分を別に作って、文字列変数に保管して置いて  KAWARUMOJI=ふにゃらふにゃら  Workbooks.Open Filename:="C:\Users\closeinlove\Dropbox\アプリ\ExcelCalendarLite\cal-excel-" & "KAWARUMOJI & ".xls" とやった方が見通しが良いかもしれません。

crossinlove
質問者

お礼

ありがとうございます。

関連するQ&A