dポイントプレゼントキャンペーン実施中!

お世話になっております。
時間になったら自動的にエクセルが50個くらいでき、
それをいちいち見に行かなくて済むように、
集計用のエクセルを作成し、そこにブック間のリンクを張りたいです。
※24時間見る可能性があるため、now関数を使用してデータ反映を検討しています。
※Excel2003を使用

ファイル名が変わるので悩んでいます。

博多_店舗エクセル

この博多の前に日付+時間が文字列で自動付与されます。
※例 202405010400博多_店舗エクセル

このエクセルができるタイミングが、0400.1200.1500.1800.2100の5回です。
4時・12時・15時・18時・21時に新しいエクセルができ
ファイル名の最後の4桁が変更されます。

データのできる場所は同じ場所にできます

INDIRECT関数でやると、ファイルを開いていないと更新されないと見たことがあるので、
店舗エクセルを開いていなくても、集計シートだけひらけば
データが反映できるようにするにはどうしたらよいでしょうか・・・。

お力を貸してください。
よろしくお願いいたします。

A 回答 (3件)

'


' 最新ファイル名を取得 対象フォルダー。指定拡張子。
' https://officedic.com/excel-vba-newdate-file/
Function LatestFile(fol As String, ftyp As String) As String
Dim FileTime As Date
Dim MaxTime As Date
Dim FileName As String
Dim MaxFileName As String

With CreateObject("WScript.Shell") 'カレントフォルダを指定

.CurrentDirectory = fol

End With

FileName = Dir("*." & ftyp) 'ワイルドカードで拡張子ファイルを取得

Do While FileName <> "" 'ファイルを取得出来なくなるまでループ

FileTime = FileDateTime(FileName) '取得したファイルの日時を取得

If FileTime > MaxTime Then '時間を比較

MaxTime = FileTime '日付が大きい場合は格納
LatestFile = FileName '日付が大きい場合はファイル名を格納

End If

FileName = Dir()

Loop
End Function

URLのページを関数化してみました。
フォルダーと拡張子とをしていして呼べばセルにでも
最新ファイルが表示されますので、それを開くのは
如何でしょうか?
    • good
    • 0

マクロ(VBA)を組めば簡単です。

    • good
    • 0
この回答へのお礼

ありがとうございます。
やはりマクロ必要なんですね・・・。
頑張ります

お礼日時:2024/05/07 11:30

こんにちは



>店舗エクセルを開いていなくても、集計シートだけひらけば
>データが反映できるようにするにはどうしたらよいでしょうか・・・。
ご質問のままを実現しようとするなら、関数では無理です。
関数で参照先のブック名を計算することは可能ですが、セル値の参照を設定するにはどうしてもINDIRECT関数になってしまいますので。

若干の操作が必要でも良ければ、
(1)関数で
 ='ブックのパス[ブック名]シート名'!セル位置
という文字列を計算して、適当なセルに表示させるようにしておきます。
このセルを「値をペースト」でペーストして、数式バーでEnter入力すれば式を入力したのと同じことになり、値を表示することが可能です。
(Ctrl+C, Ctrl+Alt+V, Alt+V, Enter, 数式バーをクリック+Enter)

あるいは、
(2)式の先頭の「=」を「$$」などに変えた式を文字列として計算しておき、(1)同様に「値をコピペ」の後、「置換」(Ctrl+H) で「$$」を「=」に置換すれば式として入力したことにできますので、置換するだけで参照結果が表示されようになります。

>時間になったら自動的にエクセルが50個くらいでき、~~
参照が1ヶ所だけなら、どちらの方法でも手間は似た様なものですが、50ブック分の参照設定を行いたいという事でしょうか?
もしそうであるなら、(2)の方法の方がまとめて操作できるので、簡単であろうと思います。


操作なしでご希望の結果を得たければ、ブックを開いた時に実行されるマクロで、参照設定を行うか、直接値を取得して表示するようにしておけば可能です。
ただし、こちらの場合は、質問者様がマクロを扱える(=作成できる)ことが必要になります。
折衷案として、(2)の方法にしておいて、「コピペ」と「置換の操作」をマクロの記録を利用して記録しておけば、ボタン操作一つで全部を表示できるようにはできるでしょう。
    • good
    • 0
この回答へのお礼

詳しく解説ありがとうございました。
マクロは勉強中なんです。
頑張って組んでみます。

お礼日時:2024/05/07 11:31

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

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


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