ブログに戻る
Guide

Slackで表を作る方法:貼り付け、キャンバス、Block Kit

ExcelやGoogleスプレッドシートのセルをコピーしてSlackのメッセージに貼ると、タブ区切りのテキストが本物の表になります。上限は20列、100行、10,000文字(2026年10月6日に検証)。コードブロック、キャンバスの表、Block Kitのtable blockと、試して出たエラーもまとめました。

Slack Green Team
October 7, 2026
October 31, 2026
10 分で読める
Share:
slack
書式
表
キャンバス

Slackのメッセージで表を作るには、ExcelかGoogleスプレッドシートでセルをコピーし、メッセージ欄に貼り付けます。Slackはタブ区切りのテキストを本物の表に変えます。入力欄に「Table added as an attachment」(表を添付ファイルとして追加しました)と出て、送信したメッセージには1行目が太字の表が表示されます。2026年10月6日に、フリープランのワークスペースでWeb版Slackを使って試しました。書式のツールバーには今も表のボタンがなく、10月6日にはChatGPTのマークダウンの表を貼ると縦線の記号のまま入りましたが、10月27日の再テストでは、プレーンテキストで貼り付けた縦線の表も本物の表(table ブロック)になりました。CSVやJSONは今も表になりません。私たちのSlack表メーカーは、マークダウン、CSV、JSONをSlackが受け付けるタブ区切りのテキストに変えます。みんなで編集し続ける表なら canvas (キャンバス)を使います。ボットはBlock Kitの table block を送ります。

下の貼り付けテスト、その上限、Block Kitの応答は、2026年10月6日に私たちのワークスペースで確かめたものです。キャンバスの上限はSlackの開発者向けドキュメントによります。

どの方法で表を作るか

方法使える場所できるもの向いている用途
タブ区切りのセルを貼り付けるすべてのメッセージ、全プラン本物の表、最大100行20列シートやレポートの行
コードブロックすべてのメッセージ、全プラン表のようにそろったテキスト表を出せないアプリ、20列を超える表
キャンバスの表キャンバス(有料プラン)編集できる本物のセル更新して残しておく表
Slackリストリスト(有料プラン)担当者、期日、状態のある行タスクの管理
Block Kitのtable blockアプリが送るメッセージ本物の行と列、最大100行20列ボットのレポートや通知

担当者と期日のあるToDoの表なら、どれよりもSlackリストが合います。Slackのキャンバスとリストの違いをご覧ください。チャンネルに追加したキャンバスやリストは、チャンネル名の下のタブに並びます。Slackのチャンネルのタブのテストでは、フリープランのタブ追加メニューにキャンバスは出ましたが、リストはProプランが必要でした。

Slackのメッセージに本物の表を貼り付ける方法

  • ExcelかGoogleスプレッドシートでセルを選んでコピーします( Cmd+C か Ctrl+C )。ChatGPTの表、CSV、JSONなら、先にSlack表メーカーに貼り、 Copy table for Slack をクリックします。
  • Slackのメッセージ欄をクリックして貼り付けます。Slackは「Table added as an attachment」と表示し、入力欄の下に Table のチップを出します。
  • 必要なら上に1行書いてから送信します。
  • タブ区切りのセルを貼り付けたあとのSlackのメッセージ欄。入力欄の下に、Task、Owner、Hoursと書かれたTableのチップが出ている。画面は英語表示

    チップを開くと読み取り専用の表のプレビューになるので、セルはコピーする前に直しておきます。次の画像は、表メーカーのGoogleスプレッドシートのサンプルを送信したあとのもので、1つのセルの中に改行があります。

    タブ区切りのセルから貼り付けた、Slackのメッセージ内の本物の表。Week、Signups、Churn、Notesの列があり、見出しの行は太字。画面は英語表示

    10月6日に、フリープランのワークスペースのメッセージ欄に貼り付け、APIで各メッセージを読み返して測った結果です。

    貼り付けたものSlackの動き
    タブ区切りの行、2行2列以上本物の表、1行目は太字
    20列、100行、10,000文字本物の表
    21列、101行、または10,001文字「This table is too big to send as an attachment. Send a snippet instead?」(表が大きすぎて添付できません。スニペットとして送りますか?)
    行ごとにセルの数が違うただのテキスト
    1行だけ、または1列だけただのテキスト
    縦線のマークダウンの表10月6日はただのテキスト、10月27日の再テストでは本物の表
    カンマ区切りのCSVただのテキスト
    同じメッセージに2つ目の表「Only 1 table can be attached to each message. Paste as text instead?」(表は1メッセージに1つまでです。テキストとして貼りますか?)

    Slackは10,000文字をUTF-16の単位で数えるので、絵文字や 𝐀 のような記号は2文字になります。貼り付けた表の中では、<@user>、@channel、リンク、*bold*、` code はただの文字のままで、絵文字に変わるのは :emoji:` のコードだけです。Googleスプレッドシートのように、クリップボードにタブ区切りのテキストと並んで太字とリンク入りのHTMLの表が入っている場合も、Slackはプレーンテキストから表を作り、太字とリンクは落としました。

    コードブロックでテキストの表を作る

  • 行を入力するか貼り付け、各列が同じ位置から始まるように列のあいだにスペースを入れます。
  • テキストを選んで書式のツールバーの Code block をクリックするか、Macなら Cmd+Option+Shift+C (Windowsなら Ctrl+Alt+Shift+C )を押します。テキストの前後にバッククォートを3つずつ打っても同じです。
  • メッセージ欄のプレビューを確認して送信します。
  • Slackはコードブロックを等幅フォントで表示するので、どの文字も同じ幅になり、列がそろいます。

    Name  Task         Status
    ----  -----------  ---------
    Jane  Launch post  Done
    Sam   QA           In review
    Mira  Design       Waiting

    表の幅は60文字くらいまでにしないと、スマホの画面に収まりません。コードブロックの中では太字、リンク、メンションは使えません。

    スペースを合わせる手間を省くなら、Slack表メーカーの As a code block タブが列をそろえてくれます。長いメッセージの中のマークダウンの表なら、マークダウンからSlackへの変換ツールが同じことをします。

    マークダウンの表を貼り付ける

    Slackのメッセージ欄は、貼り付けたマークダウンの表を読み取るようになりました。2026年10月28日に、HTMLを含まないプレーンテキストの次の表をコピーし、Web版Slackのチャンネルに Cmd+V で貼り付けました。

    | Task | Owner | Hours |
    | --- | --- | --- |
    | Launch post | Jane | 6 |
    | QA pass | Sam | 12 |

    メッセージ欄のテキストは、見出しのセル名が付いた Table のチップに置き換わりました。

    マークダウンの縦線の表を貼り付けたあとのSlackのメッセージ欄。カーソルの上に、Task、Owner、Hoursと書かれたTableのチップがある。画面は英語表示

    Enterで送ると、見出しの行が太字の表になり、| --- | の行は消えていました。

    送信したSlackのメッセージ。Task、Owner、Hoursの列と2行の本物の表で、見出しの行は太字。画面は英語表示

    conversations.history で読み返すと、メッセージには raw_text のセルを持つ table ブロックが1つあり、ブロックを表示できない場所向けの text は「This message contains interactive elements.」でした。表になるのは貼り付けたときだけです。自分で打った縦線は打ったとおりの文字のままで(10月27日のテストでは | Plan | Price | がただのテキストとして保存されました)、Slackの書式mrkdwnには表の書き方がないからです。手で列をそろえるなら、上のコードブロックの方法を使います。

Slackで「離席中」と表示されなくなります

クラウドベース。ダウンロード不要。ノートPCがオフでも24時間稼働。

Slackのキャンバスで本物の表を作る方法

キャンバスは、チャンネルやDMの中にあるSlackのドキュメントで、ツールバーに表の項目があります。

  • サイドバーの Files をクリックし、 + ボタンから Canvas を選びます。会話に付けるなら、チャンネルのヘッダーの + をクリックして Canvas を選びます。
  • キャンバスのツールバーで表の項目をクリックするか、 / を押して挿入メニューを開き、表を選びます。
  • セルに入力します。セルには太字、リンク、メンション、チェックボックスを入れられます。
  • キャンバスを会話で共有するか、みんなが見つけられるようにチャンネルのタブとして置いておきます。
  • Slackの開発者向けドキュメントでは、キャンバスの表は行と列の組み合わせにかかわらず1つあたり300セルまでです。単独のキャンバスは有料プランの機能で、Slackは Create new > Canvas にProの印を付けています。ワークスペースがフリープランに戻ると、既存のキャンバスは読み取り専用になります。フリーのワークスペースでもチャンネルにキャンバスのタブは追加でき、私たちがSlackキャンバスの書式ショートカットを試したのもそこです。Slackの中でマークダウンの表が使えるのはキャンバスの表だけです。canvases.create のAPIでキャンバスを作るアプリは、表をマークダウンで送れば、Slackが表にしてくれます。貼り付けでもできます。2026年10月29日、フリープランのチャンネルキャンバスにパイプ区切りの表を貼り付けると、編集できるキャンバスの表になりました。その週次報告の例はSlackキャンバスの例(英語)にあります。

    CSVファイルをSlackの表にする

    よく書き出すスプレッドシートなら、短いスクリプトで列をそろえられます。次を csv_to_slack.py として保存し、python3 csv_to_slack.py team.csv で実行すると、どのSlackのメッセージにも貼れるコードブロックが出力されます。

    import csv
    import sys
    
    FENCE = "`" * 3
    
    with open(sys.argv[1], newline="") as f:
        rows = list(csv.reader(f))
    
    ncols = max(len(r) for r in rows)
    rows = [r + [""] * (ncols - len(r)) for r in rows]
    widths = [max(len(r[i]) for r in rows) for i in range(ncols)]
    
    lines = ["  ".join(c.ljust(w) for c, w in zip(r, widths)).rstrip() for r in rows]
    lines.insert(1, "  ".join("-" * w for w in widths))
    print("\n".join([FENCE, *lines, FENCE]))

    上の例のもとになった team.csv なら、出力はコードブロックの章で見せた表に、見出しの下の破線が加わったものです。列が5〜6を超えるCSVなら、キャンバスの表のほうが読みやすくなります。

    Block Kitのtable blockでSlackアプリから表を送る

    アプリはメッセージに本物の表を投稿できます。SlackのBlock Kitには table ブロックがあり、上限は貼り付けと同じでした。101行で chat.postMessage は no more than 100 items allowed を返し、1行に21セルで no more than 20 items allowed、10,001文字で table_character_count_must_not_exceed_10000 を返しました。セルは raw_text、raw_number、rich_text(太字、リンク、メンション用)のどれかで、column_settings で列ごとに折り返しと配置を決めます。同じテストで見つけた落とし穴が2つあります。column_settings に null を入れると must provide an object で失敗するので、設定のない列には {} を使います。空の raw_text セルは must be more than 0 characters で失敗するので、空のセルは null で送ります。Slack表メーカーの From a bot タブは、貼り付けた表からこのJSONを作ります。

    メッセージを table.json として保存します。

    {
      "channel": "C0123456789",
      "text": "Launch status: 3 tasks",
      "blocks": [
        {
          "type": "table",
          "column_settings": [{"is_wrapped": true}, {}, {"align": "right"}],
          "rows": [
            [{"type": "raw_text", "text": "Task"}, {"type": "raw_text", "text": "Owner"}, {"type": "raw_text", "text": "Hours"}],
            [{"type": "raw_text", "text": "Launch post"}, {"type": "raw_text", "text": "Jane"}, {"type": "raw_text", "text": "6"}],
            [{"type": "raw_text", "text": "QA pass"}, {"type": "raw_text", "text": "Sam"}, {"type": "raw_text", "text": "12"}]
          ]
        }
      ]
    }

    あとはボットトークンを使って chat.postMessage で投稿します。

    curl -X POST https://slack.com/api/chat.postMessage \
      -H "Authorization: Bearer $SLACK_BOT_TOKEN" \
      -H "Content-type: application/json; charset=utf-8" \
      --data @table.json

    text は通知に表示される代わりの文字です。長い表は複数のメッセージに分けるようSlackのドキュメントは書いています。並べ替えやページ送りのできる表や、横にグラフを付けたい場合、アプリは新しい data_table と data_visualization のブロックを使えます。両方を試し、それぞれが返すエラーをSlackのBlock Kitのグラフにまとめました。

    LLMの回答のようにすでにマークダウンを出力するアプリなら、もっと短い道があります。Block Kitの markdown block ("type": "markdown")は標準のマークダウンを受け付けます。10月6日に下の縦線の表を送ると、Slackはそれを table ブロックとして保存しました。貼り付けと違い、見出しの行は太字になりませんでした。1つのメッセージのmarkdown blockは、合わせて12,000文字までです。

    {
      "channel": "C0123456789",
      "text": "Launch status",
      "blocks": [
        {"type": "markdown", "text": "| Task | Owner |\n| --- | --- |\n| Launch post | Jane |\n| QA pass | Sam |"}
      ]
    }

    表以外にボットが投稿するテキストは、マークダウンからSlackへの変換ツールのSlack to Markdownの側で、送る前にmrkdwnをプレビューできます。

    スマホのSlackでの表

    iPhoneとAndroidのSlackアプリでは、幅の広いコードブロックは画面に収まりません。読む人の多くがスマホなら、コードブロックの表は短い2〜3列にするか、箇条書きかキャンバスを使います。コードブロックやリストのSlackのキーボードショートカットが使えるのはデスクトップだけです。

    よくある質問

    Slackのマークダウンは表に対応していますか?

    自分で打つメッセージの縦線の表には対応していません。| と --- は打ったとおりに表示されます。メッセージ欄が表に変えるのは、貼り付けたタブ区切りのテキストと、10月27日の再テストでは貼り付けた縦線の表です。マークダウンの表が使えるのは、Slack APIで作るキャンバスと、アプリが送るBlock Kitのmarkdown blockです。

    Excelの表をSlackに貼り付けるには?

    セルをコピーしてメッセージ欄に貼り付けます。Slackは100行、20列、10,000文字までなら本物の表にします。それを超えると、代わりにスニペットで送るか聞いてきます。

    Slackのメッセージに表のボタンはありますか?

    ありません。メッセージのツールバーにあるのは太字、斜体、下線、取り消し線、コード、引用、コードブロック、リストです。表を入れる方法はタブ区切りのセルの貼り付けで、表のボタンはキャンバスにあります。

    Always Active

    マウスを動かす必要はもうありません。

    何百人ものリモートワーカーがSlackのステータスを気にしなくなりました。一度設定すれば、永遠にグリーン。

    関連記事

    Guide

    Slackのコードブロック:ショートカット、色分け、スニペット

    Slackの入力欄でバッククォートを3つ入力するか、Cmd+Alt+Shift+Cを押すとコードブロックになります。バッククォートのあとの言語名がどうなるかを試し、色分けされたスニペットを実際に作り、ボットの4,000文字を超えるコードブロックが分割されて表示されなくなることも確かめました。

    Slack Green Team
    Guide

    Slackの拡大・縮小:ショートカット、上限、文字が小さいときの直し方

    Slackの拡大はCmdと+(WindowsはCtrlと+)、縮小はCmdと-、元に戻すのはCmdと0です。Slackのコードでは拡大は5段階(249%)、縮小は3段階(58%)まで。2026年11月2日にSlack 4.52.182から読み取りました。

    Slack Green Team
    Guide

    Slackで送信せずに改行する方法

    Slackのメッセージで送信せずに改行するにはShift+Enterを押します。Enterで改行したいなら、環境設定の詳細設定で、メッセージを書くときのEnterキーを「改行する」に変え、Cmd+EnterかCtrl+Enterで送信します。スマホ、リスト、コードブロック、APIでの改行もまとめました。

    Slack Green Team