カワハラの、雑多な記録。

Freeplane小ネタ-表(テーブル)を使う

      2019/06/19

Freeplaneのノードに表を表示させたい、と思うことが結構あります。
例えば、なんか買う時に競合する製品のスペックを表にして比較する時とか。
Excelで表を作って、ファイルに保存、そのExcelファイルへのリンクをマップ上に置くと言うのでもいいんですが、やっぱりマップ上で表が見たいと思います。
理想を言えば、OLEって言うんですかね。wordの文書内にexcelのスプレッドシートを埋め込むやつ。
埋め込まれたやつを編集するときはexcelが起動して編集できる。
有料のマインドマップ作成ソフトとかでは、こういうことが出来るのもあるかもしれませんが、Freeplaneではできなさそうです。

ここではFreeplaneで実現できる方法を考えてみます。

Freeplaneのテーブル機能を使う方法

まずノードを1つ追加。

ノードを右クリック「ノードコアをダイアログ編集」、またはノードを選択してAlt + Enterのショートカットキーで、ノードの内容を別ウィンドウ(ダイアログ)で編集できます。

ちなみに、ノードを選択してF2またはEndキーで出来るインライン編集は、日本語を入力していたら勝手に確定されたり、最初に押したキーが反応してくれない事があるので(バグ?)、ある程度の長さの文章を入力するときはダイアログ編集が使いやすいです。

(2015.03.18追記)
最新版ではこの不具合は修正されているようです。

メニュー → 「テーブル」 → 「テーブル」
と進むと「テーブル挿入」ダイアログが出るので、必要な列数を入力

3列、1行の表ができます。

メニュー → 「テーブル」 → 「行の追加」

を2回すると、こうなります。

適当に文字を入れてみたらこうなります。

この方法で一応表が作れます。
でも、なんかめんどうくさい。

1行ずつ「行の追加」をしないといけないので面倒です。
なんで「テーブル挿入」ダイアログでは列数しか入力できなくて、行数を入力させてくれないんでしょうか。

excelを使う方法

Freeplaneのノードは、htmlを表現できます。
先ほどのテーブル機能も、裏ではhtmlのテーブル(表)を作成しているにすぎません。
なので、htmlを直接編集すれば表を自由自在に作成できるんですが、そんな方法はテーブル機能以上に面倒くさいので、excelを使った方法を。
やっぱり表を作るには表計算ソフトが使い慣れていてやりやすいです。
excelじゃなくても、オープンソースのLibreOffice Calcでも出来たので、お好きな方でどうぞ。

まずexcelで表を作成します。
さすがにさくさくと作成できます。
で、作った表の全体を囲んでコピー。

「ノードコアをダイアログ編集」で下のタブの「レイアウト表示」が選択されていることを確認し、入力エリアに貼り付け。

これだけでもう表ができています。
ダイアログのokボタンを押してマップに戻るとこんなふうになっています。

表の罫線がないのでなんか見にくいですね。。

(2015.03.18追記)
kankyosetting
 Freeplaneの「ツール」→「環境設定」→「動作設定」→「リッチテキストエディタ」→「標準の貼り付け形式」で、「HTML形式」に設定している必要があります。
(2015.11.20さらに追記)
Freeplaneの「ツール」→「環境設定」→「動作設定」→「リッチテキストエディタ」→「標準の貼り付け形式」で、「HTML形式」じゃなくて「プレーンテキスト形式」に設定していても大丈夫みたいです。この設定でHTML形式にしていると、WEBページからコピーしてペーストすると、文字サイズや色なんかの書式までコピーしてしまうので、正直鬱陶しかったんですよね。
この設定でHTMLかプレーンテキストかを選ぶかによって、ノードコアをダイアログ編集した時の、メニュー「編集」に出てくる貼り付けの項目が変化します。
past
環境設定の「標準の貼り付け形式」で、「HTML形式」を選択した場合は「プレーンテキスト形式で貼り付け」と言う項目ができ、
環境設定の「標準の貼り付け形式」で、「プレーンテキスト形式」を選択した場合は「HTML形式で貼り付け」と言う項目ができます。つまり、環境設定の標準の貼り付け形式では「プレーンテキスト形式」しておき、普段使いに便利なようにしておき、
たまにしか使わない表を貼り付ける時だけメニューから「HTML形式で貼り付け」を選べば、万事OKです。

罫線を表示させる

再度「ノードコアをダイアログ編集」で下の方にある「HTMLコード表示」を押す。
excelのデータを貼り付けたことにより、このようなhtmlタグが自動で作成されていました。

<table>
となっているところが
<table border=”1″>
となるように「border=”1″」を追加。
ダイアログのokを押してマップに戻るとこうなっています。

表を編集するときは

表を編集する時、ちょっとした追記なら、
ノードをダブルクリックやF2キーでインライン編集
ノードコアをダイアログ編集
してもいいんですが、列を入れ替えたり、大幅な変更があるときはちょっと面倒です。

そこで、

  • 表のノードをコピー
  • excelに貼付け

とすると、表をまたexcelに持って行くことが出来ます。
使い慣れたexcelなら、簡単に編集できるので好きなだけ編集したら、再度excelの表をコピー、Freeplaneのノードへ貼り付けで、編集を反映させることが出来ます。

問題点

この方法も完璧ではないところがあります。
まず、表を見やすくするために色を付けられない。
Freeplane上でhtmlをいじくってセルに色を付けたり出来ますが、excelで色を付けてFreeplaneに持って行く時には色の情報までコピー出来ません。
なので、頑張って色を付けて見やすくしても、Freeplaneに持って行った時点で色が消える。
Freeplaneで色を付けても、再度excelに持って行って、Freeplaneに戻す時に色が消えます。
または、Freeplaneで色を付けたら、excelで編集することを諦めなければいけません。

(2015.03.18追記)
excelでセルに色を付けただけだと、Freeplaneに持っていった時に色の情報が無くなりますが、excelの「条件付き書式」で色が付いている時は色を持って行けたりします。
このへんの挙動がよく分からないです。
excelのバージョンによっても違ったり?(当方のexcelは2003。古い…)

また、当然Freeplane上の表はただの表であって、表計算ソフトではないので、excelみたいに計算したりは出来ません。

まとめ

というわけで、多少の制限はありますが、ちょっとした表をFreeplaneで扱うとき、今回の方法を使うと便利ではないでしょうか。

Freeplaneのダウンロードはこちら

 - Freeplane