d.sunnyone.org
sunnyone.org

ページ

2013-09-14

LibreOffice Calcの選択セルをMediaWiki表形式に変換するBasicマクロを作った

MediaWikiで表を書くとき、最初に作るときにフォーマットを思い出すのが辛いので、LibreOffice Calcの選択セルをMediaWikiの表形式に変換するマクロを書いてみた。ずっと書こうと思っていたのだけど、ようやく書けた。LibreOfficeにしておけば、気兼ねなくインストールして使えるので。



使い方は簡単で、選択してこのマクロを実行するだけ。そうするとメッセージボックスが出てくるので、このボックスはテキスト選択可能なのでコピペすればOK。ツールバーの空き部分にでもボタンを貼っておけばいいと思う。MediaWikiの表は、もっと高機能だけど、ひとまずプレーンな形に整形するだけ。

これがマクロ。

全然エレガントじゃない。

書くときのポイント

  • LibreOfficeについているマクロエディタは補完もないので、最初はNotepad++でVBモードで書くのがおすすめ。

参考にしたもの

辛かったこと

  • 流儀がわからない
    • プロパティ?の参照は .Abc = "ABC" だったり、setAbc("ABC") だったり書いてある場所によってぶれぶれ。変数名の命名はoから?とか。まぁ最初は動けばいいんだろうけど、結局すっきり書けなかった。
  • クリップボードがめちゃくちゃつらい。Win32 APIプログラミングですかっていう低レベルさ。
 プログラミングを始めたときのようなもどかしさを味わうことができた。



2 件のコメント:

  1. はじめまして。非常に便利なマクロで感動してます。

    さっそくで恐縮なのですが、コードの9行目、
    Dim lengthArray(rangeAddress.StartRow to rangeAddress.EndRow)
    は、
    Dim lengthArray(rangeAddress.StartColumn to rangeAddress.EndColumn)
    に修正しないと、列数の方が多い表に関して参照エラーが発生してしまうように思います。

    こちらの環境で修正して動作を確認しましたが、ご確認いただけるとありがたいです。

    返信削除
    返信
    1. 本当ですね。ご指摘ありがとうございます。修正しました。

      削除