ソースコードを色付きでExcelにコピペする

こんな風に色を付けたい 

f:id:ghost16385:20180714123523p:plain

ググったらでるけどとりあえずまとめとメモ用。Excelは2016。

メモ(2018/07)

「色付きコピー ソース」とかでググったらまあ結構ある。

出てくる情報では「Visual StudioEclipseからコピーするときはWordを経由するとできる」ってのが多く引っかかる。これはエディタがリッチテキスト形式でクリップボードに入れるからそうなるので、メモ帳みたいな普通のエディタだとできないし、タブとかちょっと問題があったりする。

Visual Studioには拡張機能があるのでそれを使えば直接コピペができるようになる。実はHTML形式でクリップボードに入っていれば直接Excelに張り付けると色が付くということみたい。Visual Studioで開発してるときはいいけどそうでないときも結構あるよね。他にもHTMLコピーする方法があった。

参考にクリップボードの仕組み

 

Wordを経由

Wordにコピペして再度Excelにコピペするだけ。リッチテキスト形式でコピーできるエディタの場合に使える方法。ExcelがあるならWordもあるはずなのでお手軽であるのがいいところ。ただこれはタブをスペースに置き換えないと悲しいことになる。 

なんでWord経由するとExcelで色が付くのかって?

Visual StudioでコピーしてFree Clipboard Viewerで見るとクリップボードにRich TextFormatで入っているのでまずWordに張り付けると色が付く。

f:id:ghost16385:20180714122119p:plain

wordに張り付け。

f:id:ghost16385:20180714122348p:plain

さらにコピーするとずらっと形式が増えて、HTML Formatが増えるのでExcelに色が付く。実はwebブラウザからテキストをExcelにコピペしたときもHTML Formatに入るんで書式が付く。

f:id:ghost16385:20180714122257p:plain

 Excelに張り付け。後者は行末にタブとコメントをつけてみた版。

f:id:ghost16385:20180714122839p:plain f:id:ghost16385:20180714123258p:plain

 タブで分割されてセルが右にずれていくのでインデントがセルの幅に依存する。これはインデント1つだけど多重にインデントしてるとどんどん右にずれていく。行の途中にタブがあると後者みたいに悲しいことになってしまう問題がある。

 試していないけどVBAマクロを作っている人がいたので試してみるのもいいかも。タブをスペースに変えてくれるらしい。

 

HTML形式のコピー機能があるエディタを使う

Visual StudioサクラエディタVimなど。

タブはエディタ側かExcelがスペースに勝手に置き換えてくれるので問題は少ない。

Visual Studioはデフォルトでは入っていないので拡張機能を入れる必要がある。

入れたらCtrl+CとかでコピーするだけでHTMLコピーになる。

f:id:ghost16385:20180714160024p:plain

2017より前はProductivity Power Toolsという1つの拡張機能の一部として入っているが、2017は拡張機能ごとにバラされてバンドルインストーラになっている。

HTMLコピーは「Copy As Html」なのでそれだけ入れてもいい。

メニューから「ツール > 拡張機能と更新プログラム」を選択し
オンラインから「Copy As Html」を検索しても同じものが出てくる

参考としてProductivity Power Tools 2017の紹介記事。

人気がある機能は本体に統合されるかもしれないんだそうな。

サクラエディタはv2.1.0.0から[編集]-[高度な操作]メニューの[選択範囲内色付きHTMLコピー]もしくは[選択範囲内行番号色付きHTMLコピー]が追加されているそうなのでこれを使ってコピーしてExcelに張り付ける。
右クリックじゃなくてメニューにあるから使いづらいし気づいてない人多そう。

f:id:ghost16385:20180714120601p:plain

上が番号なし、下が番号ありだけど番号ありは空行が時刻として認識されちゃっている。HTML張り付けはこれみたいにExcelが表示形式を変えてしまう問題があったりする。

f:id:ghost16385:20180714120841p:plain

vim6以降は:TOhtmlというコマンドがデフォで入っている。
http://nanasi.jp/articles/vim/2html_vim.html

これを実行するとHTMLが生成されるのでコピーしてExcelに張り付ける。
スクリプトをちょっと書けばキーショートカットにもできる。
vimのいいところは適当に空バッファに張り付けて:set filetype=xmlとかすれば色が付くから汎用的なのがいいところ。

vimmerは上級者だろうから説明以上。

 

Webサービスを経由

テキストを貼り付けるとコードにハイライトをつけてくれるWebサービスがある。

WebブラウザからコピーするとHTML形式でコピーされるので、Excelに張り付けると色が付くのである。

例えば以下。

drupa.jpn.org

プレビューに出てきたものをコピペすると色がつく。
部分的なソースをちょっと色付けしたいとかなら使えるかも。セキュリティとかのあれでwebに張り付けるのはちょっと…ってのはあるかもしれない。

f:id:ghost16385:20180714155443p:plain


参考にしたサイト

やっぱみんなExcelに張り付けたいんやなって

dotnetcsharptips.seesaa.net

d.hatena.ne.jp

forest.watch.impress.co.jp

upa-pc.blogspot.com

daisy64.blogspot.com

www.projectgroup.info

y-maeyama.hatenablog.com