excelデータをplistに変換用エクセルVBA

エクセルデータをplistに変換するためのエクセルVBA。xml2.0 lib必須。max:行数 jmax:列数 あと保存パス入れるだけ。簡単なDB使いたいときとかにべんり。せっかくなのでぺたり。これは何の言語は何に入るんだろう。。。

エクセルデータをplistに変換するためのエクセルVBA。xml2.0 lib必須。max:行数 jmax:列数 あと保存パス入れるだけ。簡単なDB使いたいときとかにべんり。せっかくなのでぺたり。これは何の言語は何に入るんだろう。。。

Sub main()

    'iOS用でエクセルファイルをplistで読み込むためのExcelVBAファイル

    'xml用変数
    Dim xmlDoc          As MSXML.DOMDocument                'XMLドキュメント
    Dim xmlPI           As IXMLDOMProcessingInstruction     'XML宣言
    Dim node(4)         As IXMLDOMNode                      '要素
    Dim plist_node(2)   As IXMLDOMNode                      '要素
    Dim attr            As MSXML.IXMLDOMAttribute           '属性
   
    'セルからのデータ取得用変数
    Dim file_name       As Variant  'File_Name
    Dim xml_des         As Variant  'XML_Description
    Dim name            As Variant  'Marker_Name
    Dim snip            As Variant  'Snippet
    Dim des             As Variant  'Marker_description
    Dim lat             As Variant  'latitude
    Dim lng             As Variant  'longitude
   
    Dim str             As String   'HTML記述
    Dim imgWidh         As String   '画像の横幅

    Dim max             As Integer  '読み込む店舗数の最大値
    Dim j               As Integer  'ForLoop Nest用
    Dim jMax            As Integer  '横方向ループ処理
   
    '変数の初期化
    max = 21
    j = 1
    jMax = 3
    imgWidth = " width=" & 3
    imgWidth02 = " width=" & 5
   
    'table用変数
    'border = " border=" & "0"
    'cellspacing = " cellspacing=" & "0"
    cellpadding = " cellpadding=" & "1"
   
   'XMLドキュメントを作成します。
    Set xmlDoc = New MSXML.DOMDocument

    'XML宣言を追加します。
    Set xmlPI = xmlDoc.appendChild(xmlDoc.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8"""))
      
    'XML宣言を追加します。
    Set xmlPI = xmlDoc.appendChild(xmlDoc.createProcessingInstruction("plist", "version=""1.0"""))
            
    '<dict>要素の宣言を追加します。
    Set node(1) = xmlDoc.appendChild(xmlDoc.createNode(NODE_ELEMENT, "dict", ""))
   
   
    For i = 2 To max '=125
        des01 = Cells(i, j)     'NSArrayの中身(オブジェクト) : Cell(行,列)
        str = des01
               
        If i = 2 Then
            '<key>要素を追加します。
            Set node(2) = node(1).appendChild(xmlDoc.createNode(NODE_ELEMENT, "key", ""))
             node(2).Text = Cells(1, j)
            '<array>要素を追加します。
            Set node(2) = node(1).appendChild(xmlDoc.createNode(NODE_ELEMENT, "array", ""))
        Else
        End If
   
       
        'dictionary要素ここから------------
        '<string>要素を追加します。
       
        Set node(3) = node(2).appendChild(xmlDoc.createNode(NODE_ELEMENT, "string", ""))
        node(3).Text = str
        'ここまで------------
       
        'ネストここから------------
        If i = max Then
            i = 1
           
            If j < jMax Then
                j = j + 1
            Else
                i = max
            End If
        Else
        End If
        '----------------------------------

    Next
   
    'XML
    'ドキュメントの出力
    xmlDoc.Save ("\\vmware-host\Shared Folders\デスクトップ\\popup_db.xml")
   
End Sub