エクセルリストをXMLテーブルに変換するマクロ

エクセルリストを瞬時に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

マクロの実行時の操作

マクロを実行する際には、以下の手順を行います:

  1. リストの準備

  2. 「ConvertRangeToXMLAndCopyToClipboard」マクロの実行
  3. データセットの名前を入力

  4. 行の意味を定義(XMLのタグ名として使用)

  5. エクセルデータの範囲を選択

以上の情報を入力した後、マクロが自動でXMLデータを生成し、それをクリップボードにコピーします。

テキストエディタに貼り付けるなどをして再利用してください(保存時の拡張子はxmlを推奨)。

マクロ実行後の確認事項

マクロを実行した後、XMLデータがクリップボードにコピーされるので、それを任意のテキストエディタに貼り付けて確認することができます。これで、データの共有や他のプログラムとの連携が簡単に行えます。

Web上で公開すればオンライン上で再利用することが可能です。

使用時の注意点

このマクロを使用する際には、いくつかの注意点があります:

  • 範囲に結合セルがあるとエラーが発生するので、結合セルは事前に解除しておく必要があります。
  • データ範囲の最初の行はXMLの要素名として使用されるため、適切な名前を使用することが重要です。

以上の点を注意していただければ、スムーズにマクロを利用できます。

このマクロを利用することで、エクセルデータのXML変換作業が劇的に効率化され、作業時間の短縮が期待できます。ぜひ一度お試し下さい。

コメント