tracのWiki文法の表を書きやすくするExcel VBAアプリケーションを作った話

こんにちは。弥生のハセガワです。
この記事はMisoca+弥生+ALTOA Advent Calendar 2018 6日目として記載しています。

寒さも本格的になり、体調管理が大変な時期になりましたね。
私は入社してまだ間もない新人です。そんな私がエンジニアになってから初めて作成した成果物について紹介しようと思います。

  • 成果物
  • tracのWiki文法で記載する表を書きやすくするExcel VBAアプリケーション(マクロ)
  • 背景
  • Wiki文法でも、表を作成するのが意外と大変・・・。

簡単な自己紹介

学生時代からちょいちょいプログラムを書いていたり、IT系の資格を取っていたりしていたのと、大学で主に勉強していたのが会計学だったので、 「会計×プログラミング弥生では!?」と思い、入社いたしました。

業務では主にC#で開発を行っています。プライベートではUnityエンジンを用いたゲーム開発を行ったり、Webサイトを制作しています。

tracのWiki文法について

みなさんはWiki文法で何かを書いた経験はありますでしょうか。
私は度々trac使っているので、よくWiki文法を使います。
HTMLの知識がなくとも、tracに何か記載する際に見出しを作ったり、線を引いたりできて、簡単に見栄えのいい文章が作れるので便利だと思います。

でも表を作るのは大変・・・

tracのWiki文法をいくつか紹介したいと思います。

f:id:ym_AdventC:20181204103645p:plain

※参考:https://www.i-act-labo.com/tracdemo/wiki/WikiFormatting

上記のようなWiki文法はHTMLで書くより短く、楽に書けるので大変ありがたく感じています。

しかし・・・Wiki文法でも、表を作るのが大変煩雑です。
例えば、以下のような表を作成するとなると・・・

no. 概要
1 表を作成する

以下のような記述が必要になります。

||=no.=||=概要=||
||1||表を作成する||

さすがに、HTMLで書くよりは楽に書くことができますが、以下のようなことがしたい場合にかなり手間です。

  • 列の位置を変えたい
  • 行を一つ削除したから、上下で連続している数値の列の数字を変えたい

以上のような変更が必要になったときに、私はいつも「Excelみたいに、楽に編集出来たらなぁ・・・」と思っていました。

そしてその気持ちは日々積もっていきました。

Excelみたいに表を編集したいのなら、Excelで表を編集できるようにしてしまえばいい

Excelで作った表をWiki文法に書き出す方法として、VBAを採択しました。

ちなみに、VBAについては知ってはいたものの、書くのは初めてでした。エクセルの要素を多く使うので、普段からVBAを使うなら覚えることが多そうだと感じましたが、 プログラミングの基礎的なことが分かっていれば誰でも問題なく書けると思いました(自分の手元に置いておく、小手先のツールのレベルであればっ!)。

そして実際に作成したものが、コチラ。

VBA画面
操作するExcelの画面

Excelの表に、tracに記載したい形で書き込んでから、「trac用」ボタンを押すと・・・

f:id:ym_AdventC:20181204093954p:plain
出力したテキストファイル

Excelが配置されているディレクトリと同じディレクトリに、tracのWiki記法で表が書かれたテキストファイルが出現します!


ちなみに、「Qiita用」ボタンを押すと・・・

f:id:ym_AdventC:20181204094040p:plain
Qiita用に出力したテキストファイル

Qiitaの記事投稿で使われるマークダウン記法の形式で生成されます(この記事のために新たに実装しました笑)!

まとめ

Excel VBAアプリケーションで「小手先ツール」を作成したお話でした。

これにより、私のtracライフが快適になりました。また、自分以外にも使ってくださっている方もいるそうで、作った身としては大変嬉しいです。

でも、これはあくまで「ツールのためのツール」。こういったものを作る上では、バランスが重要だと思います。

f:id:ym_AdventC:20181204094433p:plain

業務の効率化は大切なことだと思いますが、それが一番大事かといわれると、それはケース・バイ・ケースです。
たとえ、私の業務効率が悪くなったとしても、その結果、お客さまが喜ばれる状況が作れるのであれば、それが一番良いと思います。

反省

すでにWiki文法、マークダウン記法の文章をExcelの表に置き換える機能があれば良かったなぁ、と思います。

おわりに

明日の7日目は、t_hara さんが、「KotlinのisInitialized呼び出しになぜcallableReferenceの指定が必要なのか」の予定です。

是非ご覧ください!