Excelで管理している表をMarkdown形式に変換すると、GitHubのREADME、社内Wiki、Notion、Qiita、ChatGPTなどへ表の内容を貼り付けやすくなります。
Markdownは記号を使って見出しや表を表現するシンプルな記法であり、Excelのセルにあるデータをそのまま活用できる点が魅力です。
ただし、Excelの表をコピーして貼り付けただけでは、Markdownの表として正しく表示されない場合があります。
この記事では、関数、コピー操作、VBA、オンライン変換ツールの考え方まで含めて、Excelのデータを読みやすいMarkdown表へ変換する実践的な方法を解説します。
ExcelからMarkdownへ変換する主な方法は、関数で記法を作る方法、表を整えて変換する方法、VBAで一括出力する方法の3つです。
サンプルデータは、1行目に見出しがあり、A列からC列までにデータが入っている状態を前提にします。
エクセルをマークダウンに変換する方法1【TEXTJOIN関数で表記法を作成】
それではまず、TEXTJOIN関数を使ってExcelの各行をMarkdownの表形式へ変換する方法について解説していきます。
| A列 | B列 | C列 |
|---|---|---|
| 商品名 | 価格 | 在庫 |
| ノート | 250 | あり |
| ペン | 120 | なし |
Markdown表の基本構造
Markdownの表は、各セルを縦棒で区切って作成します。
たとえば商品名、価格、在庫という3列の表では、見出し行を「| 商品名 | 価格 | 在庫 |」のように記述します。
見出し行の直下には「| — | — | — |」という区切り行が必要です。
この区切り行があることで、Markdownを解釈するサービスは最初の行を表の見出しとして判断します。
Excelの1行目をMarkdownの見出し行として扱うことが、表をきれいに変換する最初のポイントです。
Markdown表の基本形は、見出し行、区切り行、データ行の順番です。
| 商品名 | 価格 | 在庫 |
| — | — | — |
| ノート | 250 | あり |
Excel側では、途中に空白の列や結合セルを作らないようにすると、変換後の列ずれを抑えられます。
数値の列は数値、日付の列は日付として入力しておくと、加工用の数式も組みやすくなります。
TEXTJOIN関数によるデータ行の変換
2行目のデータをMarkdown形式にするには、変換結果を表示したいD2セルなどへ数式を入力します。
="| "&TEXTJOIN(" | ",TRUE,A2:C2)&" |"
この数式では、A2からC2までの値を「 | 」で連結し、行の先頭と末尾にも縦棒を追加します。
TEXTJOIN関数の第1引数は区切り文字であり、ここでは半角スペースを含む縦棒を指定しています。
第2引数のTRUEは、範囲内に空白セルがある場合に空白を無視する設定です。
第3引数のA2:C2は、連結したいセル範囲を表します。
変換結果は「| ノート | 250 | あり |」となり、Markdownのデータ行としてそのまま使えます。
数式は2行目に入力してから下方向へオートフィルすると、複数行を短時間で処理できます。

データに空欄を含めたい場合は、TRUEをFALSEへ変更するか、空欄の扱いをあらかじめ決めておきましょう。
空欄を無視すると列数が変わることがあるため、表の構造を維持したい場面では注意が必要です。
見出し行と区切り行の作成
Markdown表では、データ行の前に見出し行と区切り行を準備します。
見出し行はA1からC1を使い、先ほどの式の参照先だけを1行目へ変えれば作成できます。
="| "&TEXTJOIN(" | ",FALSE,A1:C1)&" |"
区切り行は、列数に合わせて縦棒とハイフンを並べるだけです。
3列の表なら「| — | — | — |」と入力します。
価格のような数値を右寄せで表示したい場合は、該当列を「—:」にします。
たとえば「| — | —: | — |」とすれば、中央の価格列が右寄せになるMarkdown対応サービスがあります。
【操作のポイント】見出し行、区切り行、データ行を別々のセルまたは別々の行として作ると、コピー後の修正がしやすくなります。
エクセルをマークダウンに変換する方法2【セル内の記号を整える】

続いては、Markdownへ変換する前にExcelのセル内容を整える方法を確認していきます。
| 商品名 | 説明 | 備考 |
|---|---|---|
| 定規 | 30cm | 透明 | 新商品 |
| 消しゴム | 白色 |
縦棒を含むセルの置換
Markdownでは縦棒が列の区切り記号になるため、セル内に縦棒が含まれていると表が途中で分割されます。
たとえば「30cm | 透明」という説明をそのまま出力すると、本来は3列の表が4列として認識されるかもしれません。
セル内に含まれる縦棒は、Markdown用にエスケープする必要があります。
ExcelではSUBSTITUTE関数を使い、縦棒をバックスラッシュ付きの縦棒へ置き換えられます。
=SUBSTITUTE(B2,"|","\|")
変換後は「30cm \| 透明」となり、Markdown側ではセル内の文字として表示されます。
元データを直接変更したくないときは、補助列を作って置換結果を出力する方法が安全です。
改行を含むセルも、貼り付け先によっては表のレイアウトを崩す原因になります。
セル内改行は、必要に応じてスペースへ置換しておくと扱いやすいでしょう。
数値と日付の表示形式
Excelでは、セルの実際の値と画面に見えている表示形式が異なることがあります。
たとえば日付セルをそのまま連結すると、環境によっては連番形式で出力されるケースがあります。
日付を「2026/08/28」のような形でMarkdownへ出したい場合は、TEXT関数で表示形式を指定します。
=TEXT(C2,"yyyy/mm/dd")
金額には「#,##0円」、割合には「0.0%」のような書式を設定できます。
Markdown表は文字列として出力されるため、変換前にどの表示形式を読者へ見せたいか決めることが重要です。
数値を計算用として再利用する可能性がある場合は、単位を別列に分ける設計も役立ちます。
たとえば価格列に「250円」と書くより、価格を250、通貨を円として管理すると、Excelでの集計とMarkdownでの表現を両立しやすくなります。
空白行と結合セルの確認
変換対象の範囲に空白行が混ざると、Markdown表の途中に不要な空行が入ることがあります。
表として公開したい範囲は、見出し行から最終データ行まで連続している状態が理想です。
Excelの結合セルは見た目を整える用途には便利ですが、データ変換では扱いにくい要素です。
結合セルは左上のセルだけに値が入り、他のセルは空欄として扱われます。
Markdown表へ変換する範囲では、原則として結合セルを解除すると列構成を保ちやすくなります。
見出しを2段にしたい場合も、結合ではなく1行目と2行目を別の見出し情報として扱うほうが後工程に向いています。
【操作のポイント】変換前に空白行、結合セル、セル内の縦棒、セル内改行を確認すると、貼り付け後の修正作業を大幅に減らせます。
エクセルをマークダウンに変換する方法3【数式をオートフィルで展開】
続いては、変換用の数式をオートフィルで最終行まで展開する操作を確認していきます。
| A列 | B列 | C列 | D列 |
|---|---|---|---|
| ノート | 250 | あり | | ノート | 250 | あり | |
| ペン | 120 | なし | 数式をコピー |
変換列の作成
元データの右側に、Markdown用の変換列を用意します。
今回の例ではD列を変換列にし、D2セルへTEXTJOIN関数を入力します。
D列を分けておくと、元の表を残したまま変換結果だけを確認できます。
変換後の文字列は長く見えるため、D列の幅を広げるか、折り返して全体を表示する設定が便利です。
元データ列と変換列を分離することは、入力ミスや上書きを防ぐ基本的な工夫です。
変換列の先頭セルに式を入力し、結果が正しいことを確認してからコピーします。
複数の列で置換や日付書式を行う場合は、先に補助列で値を整えてから最終的なMarkdown行を作成しましょう。
フィルハンドルによるコピー
D2セルの右下にマウスポインターを合わせると、小さな四角形であるフィルハンドルが表示されます。
フィルハンドルを下へドラッグすると、D2の数式が下の行へコピーされます。
元データが連続している場合は、フィルハンドルをダブルクリックして最終行まで自動入力する方法もあります。

オートフィルでは、A2:C2という相対参照がA3:C3、A4:C4のように自動で変化します。
この相対参照の仕組みにより、行ごとのデータを個別に指定し直す必要がありません。
途中で結果が空白になったときは、元データ側に空白行がないか、参照範囲が正しいかを確認しましょう。
完成した行のコピーと貼り付け
変換が終わったD列のセル範囲を選択し、コピーします。
貼り付け先がプレーンテキストを受け付けるエディターなら、そのまま貼り付けてもMarkdown行として利用できます。
Excelから直接コピーすると、貼り付け先によってはタブ区切りとして扱われる場合があります。
その場合は数式バー内の文字列をコピーするか、一度メモ帳などのプレーンテキスト環境を経由するとよいでしょう。
最終的に貼り付けた場所で表が正しく表示されるか確認することが大切です。
GitHubやWordPressのMarkdown対応プラグインなど、サービスごとに表の解釈に違いがあるためです。
【操作のポイント】数式を下へ展開した後は、先頭行、中間行、最終行の3か所を確認すると参照ずれを見つけやすくなります。
エクセルをマークダウンに変換する方法4【VBAでテキストを一括作成】
続いては、大量の表データをMarkdownへ変換したい場合に便利なVBAの使い方を確認していきます。
| 商品名 | 価格 | 在庫 |
|---|---|---|
| ノート | 250 | あり |
| ペン | 120 | なし |
VBAを使う場面
同じ形式のExcel表を何度もMarkdownへ変換するなら、VBAで作業を自動化できます。
VBAはExcelに組み込まれているプログラミング機能であり、セル範囲の読み取り、文字列の連結、別シートへの出力をまとめて実行できます。
毎週更新する一覧表や、数百行以上のデータを扱う場合に特に効果的です。
ただし、初めてVBAを使う場合は、まず関数による変換でMarkdownの構造を理解してから取り組むと安心です。
マクロを含むブックは、保存形式をExcelマクロ有効ブックにする必要があります。
VBAの実行前には、対象シート名と変換範囲を確認し、元データのバックアップを保存しておきましょう。
Markdown表を作るVBAコード
以下のVBAは、アクティブシートのA1から最終行・最終列までを読み取り、Markdown形式の文字列を新しいシートへ出力する例です。
Sub ConvertExcelToMarkdown()
Dim ws As Worksheet
Dim outputWs As Worksheet
Dim lastRow As Long
Dim lastCol As Long
Dim r As Long
Dim c As Long
Dim mdText As String
Dim lineText As String
Set ws = ActiveSheet
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
Set outputWs = Worksheets.Add
outputWs.Name = "Markdown出力"
For r = 1 To lastRow
lineText = "| "
For c = 1 To lastCol
lineText = lineText & Replace(ws.Cells(r, c).Text, "|", "\|") & " | "
Next c
mdText = mdText & lineText & vbCrLf
If r = 1 Then
lineText = "| "
For c = 1 To lastCol
lineText = lineText & "--- | "
Next c
mdText = mdText & lineText & vbCrLf
End If
Next r
outputWs.Range("A1").Value = mdText
outputWs.Columns("A").ColumnWidth = 80
End Sub
コード内のCells(r, c).Textは、セルに表示されている文字列を取得します。
Replace関数はセル内の縦棒を「\|」へ変換し、Markdown表の区切りと区別できるようにしています。
rが1のときに区切り行を追加しているため、1行目が見出し行として扱われます。
コード内のA列を基準に最終行を取得しているため、A列が空白になる表では基準列を変更してください。
VBA実行画面の操作
ExcelでAltキーとF11キーを押すと、Visual Basic Editorを開けます。
上部メニューの挿入から標準モジュールを選び、表示されたコード画面にVBAを貼り付けます。
変換したい表があるシートをアクティブにしてから、VBAを実行しましょう。
画面上部に開発タブが見当たらない場合は、Excelのオプションでリボンのユーザー設定を開き、開発へチェックを入れます。
マクロ一覧からConvertExcelToMarkdownを選び、実行を押すと新しいシートに変換結果が出力されます。
【操作のポイント】VBAを実行する前に、変換対象のシートをクリックしてアクティブにしておくと、別シートを誤って変換する失敗を防げます。
エクセルをマークダウンに変換する方法5【貼り付け先に合わせた確認】
続いては、作成したMarkdownを貼り付け先に合わせて確認する方法を解説していきます。
| 確認項目 | 内容 | 確認結果 |
|---|---|---|
| 列数 | 見出しとデータの列数 | 一致 |
| 縦棒 | セル内の | を置換 | 完了 |
プレビューで表の崩れを確認
Markdownを貼り付けた後は、プレビュー機能があれば必ず表示結果を確認しましょう。
見出し行と区切り行の列数が異なると、表全体が表示されないことがあります。
横幅の広い表は、スマートフォンでは横スクロールが必要になる場合があります。
列を増やしすぎず、読者に必要な情報へ絞ると、Markdown表は読みやすくなります。
長文の説明欄があるときは、表へ詰め込むより本文へ移したほうが伝わりやすいこともあります。
GitHubとブログでの表示差
GitHubでは一般的なMarkdown表が比較的安定して表示されます。
一方で、ブログのエディターやCMSでは、Markdown入力に対応していなかったり、HTMLへ自動変換されたりする場合があります。
WordPressでMarkdownを使う場合は、テーマやプラグインの仕様も確認しましょう。
表の右寄せ指定やセル内の改行などは、サービスによって対応状況が異なります。
変換結果を一度公開前の下書きで確認すると、意図しないレイアウト崩れを防げます。
CSVとの使い分け
Excelデータをテキスト化する方法には、MarkdownだけでなくCSVもあります。
CSVはデータ交換や再編集に向き、Markdownは人に見せる表として読みやすい形式です。
数値データを別のシステムへ取り込むならCSV、記事や手順書へ掲載するならMarkdownが向いています。
同じExcel表からCSVとMarkdownの両方を作っておくと、用途ごとに使い分けられます。
CSVは機械処理向け、Markdownは文書表示向けという違いを意識すると、形式選びで迷いにくくなります。
【操作のポイント】貼り付け先のプレビューで確認し、列数、縦棒、改行、文字化けの4点をチェックしましょう。
エクセルをマークダウンに変換する方法のまとめ(Markdown)
ExcelをMarkdownへ変換する場合は、まず1行目を見出しとして整え、各データ行を縦棒で区切る形にします。
少ない行数ならTEXTJOIN関数で変換列を作る方法が分かりやすく、数式をオートフィルすれば複数行のMarkdown化も効率的です。
セル内の縦棒はSUBSTITUTE関数で置換し、日付や金額はTEXT関数で見せたい形式へ整えると、完成度が高まります。
大量の表を繰り返し変換するなら、VBAでMarkdown文字列を一括作成する方法も有効です。
最後は貼り付け先のプレビューを確認し、列ずれや表示崩れがないことを確かめましょう。
Excelで管理している情報をMarkdownへ変換できるようになると、表を使ったドキュメント作成や情報共有がスムーズになります。