こんにちは、Ryoです。
Excelの機能として「最近使ったアイテム(ファイル)」が確認できますが、VBAを使ってこれらの数とファイル名をフルパスで取得することも可能です。定期的に使用履歴を残しておきたい場合などには有効ですね。今回はその方法について書いていきます。
1.サンプル概要
Excelの「ファイル」⇒「保存」を選択することで「最近使ったアイテム」として表示されるものが以下になります。
これらを簡易的な表の欄内に「最近使ったアイテム」を書き出してみます。
この通りフルパスでファイル名を取得してくれます。
2.サンプルコード
最近使ったアイテム(ファイル)を取得するには、RecentFilesプロパティを使用し、そこにItem/Nameプロパティを組み合わせることで、指定したファイル名を取得することができます。
オブジェクト.RecentFiles
ちなみに、このRecentFilesは「最近使ったアイテム(ファイル)」自体を表していますので、他のプロパティを組み合わせる必要があるということです。
Sub Sample1() Dim F_Num As Integer '最近使ったアイテム(ファイル)の最大数を取得 F_Num = Application.RecentFiles.Maximum '取得した最大数分For~Nextを繰り返す For i = 1 To F_Num 'セルB3以降に取得したファイル名を書き出す '履歴の新しい順から順次取得 Cells(i + 2, 2).Value = Application.RecentFiles.Item(i).Name Next i End Sub
サンプルコード内で使用しているItemプロパティはindex番号を指定してファイルを取得することが出来る為、i=1から取得した最大数まで順次指定します。
またMaximumプロパティは最大数を取得するものですが、確認する限り「最新から25個まで」でMaxとなるようなので、ご注意ください。
3.まとめ
サンプルの通り、取得すること自体はRecentFiles/Item/Nameプロパティを組み合わせることで簡単に対応出来ます。
ただMax数取得しても25ファイルまでなので、履歴を都度記録として残すようなことを考える場合は念頭に置いておいた方が良いですね。利用機会自体は多くないと思いますが、もし機会あれば活用などご検討くださいませ!
以上、最近使ったアイテム(ファイル)を取得する方法についてでした!今回の記事が何かの参考になれば幸いです。
Ryo