前回のまとめと概要
前回の記事では「Excelの表をMarkdownでのテーブルに変換するユーザー定義関数」を紹介しました。

Excelの表をMarkdownでのテーブルに変換するユーザー定義関数
Markdownとテーブル・表Markdown(マークダウン)は、プレーンテキストで書かれたコンテンツを簡単に書式設定できる軽量のマークアップ言語です。主にWebコンテンツやドキュメントの作成に使用されます。サンプル: Markdownでの...
上記のページにあるユーザー定義関数を使う方法の欠点は、「成果物をnotepad(メモ帳)などへコピペすると上下に”が付く」というポイントです。
そこでこの記事では、「表をMarkdownでのテーブルに変換してクリップボードへコピーするVBAマクロ」をご紹介します。
表をMarkdownでのテーブルに変換してクリップボードへコピーするVBAマクロ
マクロのコード
Sub CopyTableAsMarkdown()
Dim rng As Range
Dim data() As Variant
Dim row As Long, col As Long
Dim markdown As String
Dim separator As String
Dim objHTML As Object
' 選択された範囲を取得
Set rng = Selection
data = rng.Value
' ヘッダー行の作成
For col = 1 To UBound(data, 2)
markdown = markdown & "|" & data(1, col)
Next col
markdown = markdown & "|" & vbCrLf
' 区切り行の作成
For col = 1 To UBound(data, 2)
separator = separator & "|---"
Next col
separator = separator & "|" & vbCrLf
markdown = markdown & separator
' データ行の作成
For row = 2 To UBound(data, 1)
For col = 1 To UBound(data, 2)
markdown = markdown & "|" & data(row, col)
Next col
markdown = markdown & "|" & vbCrLf
Next row
' クリップボードにコピー
Set objHTML = CreateObject("htmlfile")
With objHTML.ParentWindow.ClipboardData
.SetData "Text", markdown
End With
End Sub設置方法
- {Alt}+{F11}キーでVBAエディタを起動します。
- 「挿入」「標準モジュール」で「moduleN」を作成します。
- 「moduleN」へ上記のコードを貼り付けます。
- VBAエディタを閉じます。
使用方法
- 変換したい表の範囲を選択します。
- {Alt}+{F8}キーでマクロリストを起動します。
- 「CopyTableAsMarkdown」を実行します。

- 貼り付け先のアプリを開き、{Ctrl}+{V}で貼り付けます(サンプル図ではメモ帳に貼り付けている)。

コメント