Attribute VB_Name = "ShareWmiExport"
Option Explicit

Public Sub ShareWmiExport()
    Dim objWMIService As Object
    Dim colItems As Object
    Dim objItem As Object
    Dim outPath As String
    Dim fileNum As Integer
    Dim propsArr() As String
    Dim c As Long
    Dim lineOut As String
    Dim val As String
    Dim rowCount As Long

    outPath = Environ("USERPROFILE") & "\Documents\ShareExport.csv"
    propsArr = Split("Name, Path, Description, Type", ", ")

    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    Set colItems = objWMIService.ExecQuery("SELECT Name, Path, Description, Type FROM Win32_Share")

    fileNum = FreeFile
    Open outPath For Output As #fileNum
    Print #fileNum, Join(propsArr, ",")

    rowCount = 0
    For Each objItem In colItems
        lineOut = ""
        For c = LBound(propsArr) To UBound(propsArr)
            val = ""
            On Error Resume Next
            val = CStr(objItem.Properties_(propsArr(c)).Value)
            On Error GoTo 0
            If c > LBound(propsArr) Then lineOut = lineOut & ","
            lineOut = lineOut & """" & Replace(val, """", """""") & """"
        Next c
        Print #fileNum, lineOut
        rowCount = rowCount + 1
    Next objItem

    Close #fileNum

    MsgBox rowCount & " Network Shares row(s) exported to " & outPath, vbInformation
End Sub