コピー&ペースト([Ctrl] + [C]/[Ctrl] + [V])という手元の操作に[Windows]+[V]という新たな生産性ツールを導入したWindows11(貼り付けのための記憶エリア"クリップボード"を25倍で業務効率化する )。クリップボードを活用した生産性向上に役立つ方法はないかと考えた。

秀丸やEmEditorなどのテキストエディターにはマクロ機能が備わる。操作を記録しそれを再生したり、コードでカスタマイズしたりとテキストエディターを用いた業務効率化の塊とも呼べるもので、これまたテキスト入力という手元の機能の小さな自動化を多様な形で提供する。

ときにはHTMLテーブルを組まなければならない筆者は、Perlによる対話型のスクリプトで縦4、横3などを入力して書き出すスクリプトを作っていたが、縦・横の指定の異なるテーブルが複数ある場合に何度も呼び出すと手間がかかる。マクロで変換したデータをクリップボードにストックしておけば楽なはずだ。

秀丸の場合

setclipboard $a;

でクリップボードにデータを格納できるので、これらの情報をもとにCopilotや参照文献となるサイトを参考にとりあえず動作するコードを作成。

$sentaku = gettext(seltopx, seltopy, selendx, selendy, 1);
$table = "<div><table>\n";
$trtd = "";
#count = 0;
#y = split($arr, $sentaku, "\r\n");
    while (#count < #y){
        $trtd = "<tr>";
        #x = split($arr2, $arr[#count],"\t");
        #count2 = 0;
        while (#count2 < #x){
            $trtd = $trtd + "<td>" + $arr2[#count2] + "</td>";
            #count2 = #count2 + 1;
            }
        $trtd = $trtd + "</tr>\r\n";
        $table = $table + $trtd;
        #count = #count + 1;
        }

$table =  $table + "</table></div>";
setclipboard $table;

あとは拡張子を.macにしたファイルを保存し、[マクロ]メニューから登録。タブ区切り(\t)にしてあるテキストを選択状態にしたまま[マクロ]メニューの[マクロ実行]でクリップボードに貼り付けられる。[Windows]+[V]からストックされたテーブルタグを選んで貼り付けられる。

  • エディタ上のタブ区切り文を選択し、マクロを呼び出し、実行すると

    エディタ上のタブ区切り文を選択し、マクロを呼び出し、実行すると

  • タブ区切りでHTMLのテーブルタグになってクリップボードに

    タブ区切りでHTMLのテーブルタグになってクリップボードに

マクロの呼び出しは面倒なので、[その他]→[メニュー編集]のユーザーメニューなどを使ってショートカットキーを覚えやすいキーで割り振ると格段の違いがある。筆者の場合は[Ctrl]+[K]でマクロメニューを呼び出す設定だがテーブルマクロには(T)を割り付ける。そうしておけば、タブ区切りテキストを選択した状態で[Ctrl]+[K] → [Ctrl]+[T]でクリップボードに格納される。そのまま[Windows]+[V]である。アーケードゲームのコンボ技ではないが、慣れると強力なツールになるなあそう思った次第だ。