フォルダ内のファイル名一覧の作成マクロ | みんなのワードマクロ

みんなのワードマクロ

ワードマクロで、文書作成とオフィス事務を効率化!!

先日紹介した「フォルダ内のファイルへのリンク自動作成マクロ 」に関連して、フォルダ内のファイル名を一覧で作成するマクロのプログラムです。

このプログラムは選択したフォルダ内の全てのファイル(サブフォルダ内のファイルは含みません)の名称をクリップボードに記憶します。

オフィスクリップボードに保存するために、

新規文書を開いて
そこにファイル名を一旦貼付けて
それをコピーする

という処理をしています。

▼使い方
このプログラムを実行すると、「ファイルを開く」ダイアログが開きます。


みんなのワードマクロ


このダイアログで希望のフォルダを開き、その中のファイルを一つ選択します。


みんなのワードマクロ


「開く」ボタンをクリックすると、クリップボードへのファイル名が保存されます。

みんなのワードマクロ



▼プログラム

Sub MWM_File_Names()

'ファイル名一覧 クリップボードへ(Word2000)

Dim mydlgOpen As Dialog
Dim mydlgFind As Dialog
Dim myFileName As String
Dim myFolderPath As String
Dim myFileList As String
Dim myDoc As Document '(オフィスクリップボードに入れるために)

  On Error GoTo EH

Application.ScreenUpdating = False

'ダイアログボックスの設定
Set mydlgOpen = Dialogs(wdDialogFileOpen)
Set mydlgFind = Dialogs(wdDialogFileFind)

With mydlgOpen
  '表示されるファイルを「すべての文書」に指定
  .Name = "*.*"
  
  Select Case .Display
  
  Case -1 'ファイルが選択されたとき
    'FileFind Dialogの更新
    mydlgFind.Update
    myFolderPath = mydlgFind.SearchPath
    
  Case Else 'キャンセルボタンが押されたとき
    End
  End Select

End With

'上記フォルダ中の任意のファイルを検索します
myFileName = Dir(myFolderPath & "\", vbNormal)

Do While myFileName <> ""
  If Len(myFileList) = 0 Then
    myFileList = myFileName
  Else
    myFileList = myFileList & vbCr & myFileName
  End If
  myFileName = Dir()
Loop

'新規文書を開きます(見えない設定)
Set myDoc = Documents.Add(Visible:=False)
myDoc.Activate
Selection.TypeText Text:=myFileList

'全体を選択
myDoc.Range.Copy
myDoc.Close savechanges:=wdDoNotSaveChanges

Application.ScreenUpdating = True

'オブジェクトの解除
Set mydlgOpen = Nothing
Set mydlgFind = Nothing

MsgBox "クリップボードに「ファイル名」を保存しました。"

  On Error GoTo 0
  Exit Sub

EH:

  MsgBox Err & " " & Err.Description

End Sub

▼関連記事

フォルダ内のファイルへのリンク自動作成マクロ

フォルダ内のファイルへのリンク自動作成マクロ (コード編)