エクセルデータを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