ExcelVBA⑥(フォルダのファイル名を取得)
このGW中に、ExcelVBAを勉強しました。その成果物をいくつか。
凄くレアな話で申し訳ないのですが、ある業務でいろいろ資料を作成していて、最後に資料一覧の目次を作ることがあります。その際、その資料を一つのフォルダ内にいれておくと、そのファイル名を以下のコードで取得できます。ファイル名は一覧表示され、別のexcelファイルに作成されます。リンクも付きます。
Sub フォルダ一覧を書き出す()
Dim SelectFolder As String '選択したフォルダ名を格納する変数
Dim myFile As Variant, r As Long
With Application.FileDialog(msoFileDialogFolderPicker)
'ダイアログボックスを表示
If .Show = True Then
'OKボタンが押された場合、フォルダ名を取得する
SelectFolder = .SelectedItems(1)
'メッセージを表示
MsgBox SelectFolder & "を選択しました。"
End If
End With
myFile = Dir(SelectFolder & "\" & "*.*") 'Dirでファイルがあるかどうかを調べる。あれば、ファイル名が取得される
Workbooks.Add
r = 0
Do While myFile <> ""
Range("A1").Offset(r).Value = myFile
myFile = Dir()
r = r + 1
Loop
r = 1
myFile = Dir(SelectFolder & "\" & "*.*")
Do While myFile <> ""
ActiveSheet.Hyperlinks.Add Anchor:=Range("A" & r), Address:=SelectFolder & "\" & myFile 'Anchor:=でリンクを貼るセルを、Address:=でリンク先アドレスを設定する
myFile = Dir()
r = r + 1
Loop
End Sub
仕事につかえる「かもしれない」ExcelVBAでした。