エクセルリストを瞬時にXMLへ変換するマクロ:活用ガイド
エクセルデータを瞬時にXML形式でクリップボードにコピーするマクロをご紹介します。
このマクロが実現すること
このマクロは、エクセルの指定した範囲のデータを簡単にXML形式に変換し、クリップボードにコピーすることが可能にします。これにより、データの共有や他のプログラムでの利用が非常に簡単になります。
それをWeb上へアップロードすることで別の場所から再利用することができます。
コード挿入
下記のコードをVBAエディタから標準モジュールにコピー&ペーストしてマクロをセットアップしてください。「ConvertRangeToXMLAndCopyToClipboard
」というマクロが作成されます。
Sub ConvertRangeToXMLAndCopyToClipboard() On Error Resume Next ' Input 1: Get Dataset name Dim datasetName As String datasetName = InputBox("データセットの名前を入力してください:") If datasetName = "" Then Exit Sub ' Input 2: Get Row Meaning Dim rowMeaning As String rowMeaning = InputBox("行の意味を入力してください:") If rowMeaning = "" Then Exit Sub ' Input 3: Get Range Dim rng As Range Set rng = Application.InputBox("リストの範囲を選択してください:", Type:=8) If rng Is Nothing Then Exit Sub ' Check for merged cells Dim cell As Range For Each cell In rng If cell.MergeCells Then MsgBox "セルの結合を解除してください", vbExclamation Exit Sub End If Next cell ' Generate XML Dim xml As String xml = "<" & datasetName & ">" & vbCrLf Dim i As Long, j As Long For i = 2 To rng.Rows.Count xml = xml & " <" & rowMeaning & ">" & vbCrLf For j = 1 To rng.Columns.Count xml = xml & " <" & rng.Cells(1, j).Value & ">" & rng.Cells(i, j).Value & "</" & rng.Cells(1, j).Value & ">" & vbCrLf Next j xml = xml & " </" & rowMeaning & ">" & vbCrLf Next i xml = xml & "</" & datasetName & ">" ' Copy to Clipboard Dim MSForms_DataObject As Object Set MSForms_DataObject = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") MSForms_DataObject.SetText xml MSForms_DataObject.PutInClipboard MsgBox "XMLがクリップボードにコピーされました", vbInformation End Sub
マクロの実行時の操作
マクロを実行する際には、以下の手順を行います:
- リストの準備
- 「ConvertRangeToXMLAndCopyToClipboard」マクロの実行
- データセットの名前を入力
- 行の意味を定義(XMLのタグ名として使用)
- エクセルデータの範囲を選択
以上の情報を入力した後、マクロが自動でXMLデータを生成し、それをクリップボードにコピーします。
テキストエディタに貼り付けるなどをして再利用してください(保存時の拡張子はxmlを推奨)。
マクロ実行後の確認事項
マクロを実行した後、XMLデータがクリップボードにコピーされるので、それを任意のテキストエディタに貼り付けて確認することができます。これで、データの共有や他のプログラムとの連携が簡単に行えます。
Web上で公開すればオンライン上で再利用することが可能です。
使用時の注意点
このマクロを使用する際には、いくつかの注意点があります:
- 範囲に結合セルがあるとエラーが発生するので、結合セルは事前に解除しておく必要があります。
- データ範囲の最初の行はXMLの要素名として使用されるため、適切な名前を使用することが重要です。
以上の点を注意していただければ、スムーズにマクロを利用できます。
このマクロを利用することで、エクセルデータのXML変換作業が劇的に効率化され、作業時間の短縮が期待できます。ぜひ一度お試し下さい。
コメント