Excelの表をMarkdownでのテーブルに変換するユーザー定義関数

Markdownとテーブル・表

Markdown(マークダウン)は、プレーンテキストで書かれたコンテンツを簡単に書式設定できる軽量のマークアップ言語です。主にWebコンテンツやドキュメントの作成に使用されます。

サンプル: Markdownでのテーブル

| Header1 | Header2 | Header3 |
|---------|---------|---------|
| Row1Col1| Row1Col2| Row1Col3|
| Row2Col1| Row2Col2| Row2Col3|

上記のデータは以下の表を意味します。

Header1Header2Header3
Row1Col1Row1Col2Row1Col3
Row2Col1Row2Col2Row2Col3

この記事ではExcelの表を Markdownテーブルへ変換する「ユーザー定義関数」と「マクロ」をご紹介します。

表をMarkdownでのテーブルに変換するユーザー定義関数

ユーザー定義関数のコード

Function ConvertToMarkdown(rng As Range) As String
    Dim cell As Range
    Dim markdown As String
    Dim separator As String
    Dim columnCount As Integer
    Dim rowCount As Integer
    Dim i As Integer
    Dim j As Integer
    
    columnCount = rng.Columns.Count
    rowCount = rng.Rows.Count
    
    ' Create the header row
    For j = 1 To columnCount
        markdown = markdown & "|" & rng.Cells(1, j).text
    Next j
    markdown = markdown & "|" & vbCrLf
    
    ' Create the separator row
    separator = "|"
    For j = 1 To columnCount
        separator = separator & "---|"
    Next j
    markdown = markdown & separator & vbCrLf
    
    ' Create the data rows
    For i = 1 To rowCount
        For j = 1 To columnCount
            markdown = markdown & "|" & rng.Cells(i, j).text
        Next j
        markdown = markdown & "|" & vbCrLf
    Next i
    
    ConvertToMarkdown = markdown
End Function

設置方法

  • {Alt}+{F11}キーでVBAエディタを起動します。
  • 「挿入」「標準モジュール」で「moduleN」を作成します。
  • 「moduleN」へ上記のコードを貼り付けます。
  • VBAエディタを閉じます。

使用方法

  • 変換データを書き起こしたいセルで「関数の挿入(fx)」を使います。

  • 「ユーザー定義」グループの「ConvertToMarkdown」を使います。

  • 引数「Rng」へ範囲を登録してOKします。

  • そのままでも使用できますが、「折り返して全体を表示する」をオンにして幅や高さを調整すると見やすくなります。

調整後の完成例

注意点・コピペ後

注意点

この関数で作成したデータをメモ帳に貼り付けると、上下に「”」が付きます。これはExcelの仕様であり、改行データがあるセルをコピペすると付きます。不要な場合は削除してください。

マクロでMarkdown変換をするには

ユーザー定義関数ではなくVBAマクロを用いると、メモ帳や他のアプリへコピペした際も「”」が付かなくなります。

詳しい設定方法は下記のページを参照してください。

Excelの表をMarkdownでのテーブルに変換してクリップボードへコピーするVBAマクロ
前回のまとめと概要 前回の記事では「Excelの表をMarkdownでのテーブルに変換するユーザー定義関数」を紹介しました。 上記のページにあるユーザー定義関数を使う方法の欠点は、「成果物をnotepad(メモ帳)などへコピペすると上下に"...

コメント