top of page
  • X
  • Facebook
  • YouTube

スポンサーリンク

スポンサーリンク

最近のニュース

サーバーのフォルダー構成を整理したい

  • 執筆者の写真: 加藤 秀幸
    加藤 秀幸
  • 8月1日
  • 読了時間: 3分


企業でサーバーを利用していると、次第にフォルダー構成が複雑になり、必要な情報へのアクセスが難しくなることがあります。そんな時に役立つのが、Excelを使ったフォルダー構成の一覧化です。今回はMicrosoft 365の新たな機能、Copilotチャット(生成AI)を使って簡単にExcelにフォルダー構成を出力する方法をご紹介します。



  1. なぜフォルダー構成をExcelに出力するのか?


サーバー内のフォルダー構成をExcelにまとめると、以下のようなメリットがあります。


  • フォルダーの構造が一目でわかり、整理や再編成がしやすくなる。

  • 特定のフォルダーや階層を簡単に検索できる。

  • 他のメンバーとの共有が容易になり、作業効率が上がる。


  1. Copilotチャットを活用する手順


今回は、Microsoft 365 Copilotチャットを使ってVBA(Visual Basic for Applications)のコードを作成し、自動でフォルダー構成をExcelに出力します。


① Copilotチャットを起動


Microsoft 365のCopilotチャットを開きます。


② プロンプトをCopilotに送信


Copilotチャットにこのブログ先頭の画像スクリーンショットを貼り付けます。

次のプロンプトをCopilotチャットに入力して送信します。


次のVBAのコードを書いてください。

・サーバーのフォルダー構成を一目で分かる形でExcelの1シートに出力する(添付画像参照)

・シート名は他のシート名と重複しないようにする(例:yyyymmdd-hhmmss)

・フォルダー構成は特定のフォルダー以下すべての階層とする(ファイルは含まない)

・特定のフォルダーはユーザーに指定させる


Copilotチャットは、このプロンプトを元に適切なVBAコードを生成してくれます。


Sub ExportFolderStructureToSheet()
    Dim fDialog As FileDialog
    Dim rootFolder As String
    Dim newSheet As Worksheet
    Dim folderList As Collection
    Dim currentTime As String
    
    ' フォルダー選択ダイアログ
    Set fDialog = Application.FileDialog(msoFileDialogFolderPicker)
    If fDialog.Show <> -1 Then Exit Sub
    rootFolder = fDialog.SelectedItems(1)
    
    ' 新しいシートを作成(一意な名前)
    currentTime = Format(Now, "yyyymmdd-hhmmss")
    Set newSheet = ThisWorkbook.Sheets.Add
    newSheet.Name = currentTime
    
    ' フォルダー構成を取得
    Set folderList = New Collection
    Call GetSubFolders(rootFolder, folderList, 1, "")
    
    ' 出力
    Dim i As Long
    For i = 1 To folderList.Count
        Dim pathParts() As String
        pathParts = Split(folderList(i), "|")
        Dim j As Long
        For j = 0 To UBound(pathParts)
            newSheet.Cells(i, j + 1).Value = pathParts(j)
        Next j
    Next i
End Sub

Sub GetSubFolders(ByVal folderPath As String, ByRef folderList As Collection, ByVal level As Integer, ByVal pathSoFar As String)
    Dim fso As Object
    Dim folder As Object
    Dim subFolder As Object
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(folderPath)
    
    Dim newPath As String
    If pathSoFar = "" Then
        newPath = folder.Name
    Else
        newPath = pathSoFar & "|" & folder.Name
    End If
    
    folderList.Add newPath
    
    For Each subFolder In folder.SubFolders
        Call GetSubFolders(subFolder.Path, folderList, level + 1, newPath)
    Next subFolder
End Sub

③ VBAの知識がない場合は?


VBAが初めてで使い方が分からない場合は、以下のような質問をCopilotチャットに追加で行いましょう。


VBAのコードのExcelへの入れ方や実行方法が分かりません。手順を教えてください。


すると、CopilotチャットがExcelへのVBAコードの挿入方法から、コードの実行方法まで丁寧に教えてくれます。


  1. まとめ


Microsoft 365のCopilotチャットを活用すれば、専門知識がない方でもサーバーのフォルダー構成を簡単にExcelへ出力できます。今回は、Excel/VBAの組み合わせでフォルダー構成をExcelへ出力しましたが、VSCode/Pythonの組み合わせに対してもCopilotはサポートしてくれます。サーバー整理に悩まれている方はぜひ、この方法を試してみてください。

コメント


タグ
フォロー
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Social Icon

スポンサーリンク

bottom of page