情報と工夫で何とかやってみる(妥協点を見出す)ブログ

情報と工夫で何とかやってきた備忘録です。同じ悩みを抱えている人がいると思い、情報共有しようと思った次第です(尤も、このブログに辿り着いた時点でもう解決していると思いますが…)

情報と工夫で何とかやってきた備忘録です。同じ悩みを抱えている人がいると思い、情報共有しようと思った次第です。(尤も、このブログに辿り着いた時点では、もう解決されていると思いますが…)

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でした。