前回のまとめと概要
前回の記事では「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}で貼り付けます(サンプル図ではメモ帳に貼り付けている)。
コメント