• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルマクロで不特定なファイル名を使用するには)

エクセルマクロで不特定なファイル名を使用する方法

このQ&Aのポイント
  • エクセルマクロを使って、不特定なファイル名を取得する方法を教えてください。
  • ファイル名が日々変わる場合、マクロが実行できるようにするにはどうすれば良いでしょうか?
  • 初めての質問で、初歩的な内容かもしれませんが、お教えいただきたいです。

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

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

開いているファイルが「日別進捗_日付"の形で日付の部分が作業日でしたら FileName = "日別進捗_" & Format(Date, "yyyymmdd") & ".xlsx" 開いているエクセルファイルがBook1.xlsmと該当ファイルしかないのでしたら For i = 1 To Workbooks.Count If Workbooks(i).Name <> "Book1.xlsm" Then FileName = Workbooks(i).Name End If Next で、FileNameに該当ファイル名が取得できますので Windows(FileName).Activate としてください。

2525008
質問者

お礼

回答を戴き大変ありがとうございます。 さっそく試させていただきます。 感謝感謝です。

その他の回答 (3)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

Sub Macro1() ' ' Macro1 Macro ' ' dim w as window dim flg as boolean Windows("Book1.xlsm").Activate Sheets("Sheet2").Select for each w in windows  if w.caption like "日別進捗*.xls*" then   w.activate   flg = true   exit for  end if next if not flg then  msgbox "日別進捗が開いていません"  exit sub end if Cells.Select Selection.Copy Windows("Book1.xlsm").Activate Cells.Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False Range("A1").Select Sheets("Sheet1").Select Range("D15").Select End Sub みたいな具合で。

2525008
質問者

お礼

ご回答有難うございます。 記録するマクロしか使えず、かなりの期間悩んでおりました。 本当に本当にありがとうございます。 さっそく試させていただきます。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

蛇足ですが 日別進捗_20140814.xlsxのファイルは メールなどで送られてくる?ほかのシステムから作成している? ならば、日別進捗.xlsx と毎回、同じ名前で保存して エクセルのマクロでは 日別進捗.xlsx のファイルを開く シートをコピペする。 日別進捗.xlsx を閉じる の繰り返し作業の方が楽だと思うのですが。

2525008
質問者

お礼

ご回答有難うございます。 日別進捗_20140814.xlsxのファイルは他のシステムから作成され 上記ファイルを日々貼り付けていくのですが、時間効率もあり マクロで簡単な方法がないかと探しておりました。 有難うございました。

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

No1追加です。 開いているファイルが複数あって(Book1.xlsmと該当ファイルだけであっても)必要なファイルが「日別進捗_」で始まるものが一つだけなら For i = 1 To Workbooks.Count If Workbooks(i).Name Like "日別進捗_*.xlsx" Then FileName = Workbooks(i).Name End If Next

関連するQ&A