マクロでGo!

最終更新:
2006-05-05
初出:
2004-12-09

マクロを使おう

 話をパソコンソフトに限定するなら、この場合のマクロというのは「任意に設定された判断・処理条件に基づいて自動処理を行わせる手段のひとつ」とでもしておきましょうか。

 「マルナガさん、この表計算の数字、三桁ごとにカンマじゃなくて読点(、)を入れたでしょ! だからアタシ、これ全部カンマ(,)に打ち直したんだよー! 手作業で!」

 その昔、職場で作業してたときに聞こえてきた会話の一部。そんなん何十ページあったところで『検索・置換』で『読点を検索しヒットしたらカンマに置換せよ』を実行すりゃ一瞬で終わりだろうに、と思いましたが、同僚ですらない部外者がしゃしゃり出ることでもないので黙っていました。

 このような単純なケースでは、対象になる原稿がたとえ何万ページに及んだとしても、検索・置換を使えばほぼ瞬時に完了することでしょう。

#でもこういうケースで、半ベソかきながら徹夜して手作業で直すひとはきっと実在する:p。

 人間様が一晩かかってやることを、適切な条件さえ与えれば一瞬で処理してしまうのがマシンの凄いところです。

 では単純な検索・置換一発で処理できないときはどうしましょう? 『アラビア数字→漢数字』にするとかその逆という場合は。

 ケタにこだわらず1を一に、2を二に、という具合に置換するなら、0から9まで十回置換を繰り返せばよさそうですが、そういった創造的とはいえない単純作業を人間様が九回も繰り返すのは時間のムダです。マクロに代行させましょう。

EmEditor用です

 本稿で公開しているマクロは、エムソフト製のテキストエディタ・EmEditor Professional v4(シェアウェア)用にJavaScript(正確には互換スクリプトのJScriptですが)を用いて作ったものです。Standard版も含めてそれ以外の環境では動きませんので、ご注意下さい。

 尚作者はJavaScriptに限らずプログラムの基本的な素養がないため、先達が公開したマクロを参考にして、動きゃいいよな程度の作りしかできません。プログラムの書法として不適切な個所は指摘していただけたら幸いですし、始まりはなんであれ、これを機にテキストの自動処理に関心を持っていただけたらうれしいですし、更にはウチのマクロの余りのあんまりさ加減に『こんなものは本物の……』とばかりに、より効率的で処理速度も速いマクロを作って広く公開していただけるのならば、ものすごくうれしいです。

冗談マクロ:行数稼ぎ「号令一番」

 その昔『原稿の枚数を稼ぎたければ兵隊を出して点呼を取らせれば良い』と言ったのはSF作家の筒井康隆だったでしょうか。このマクロはそれを自動で実現するために作りました。

 号令をかける以外にも、数字以外は共通の文字列を一行に一件ずつ、連番で作るのにもきっと便利です。

このマクロを実行するとどうなるか

  • カーソルのある位置から開始します。
  • 一列目は「番号!」という号令で始まります。
  • 数字は1から始まって一つずつ大きくなる連番です。
  • 最後は10で終ります。
  • 一件ずつ改行します。
  • 数字の前後をカギ括弧「」で挟みます。
  • 一旦半角数字で出力します。
  • 出力後漢数字に置換するためのダイアログが出ます。
  • [OK]を選択すると漢数字に置換して終了します。
  • [キャンセル]を選択すると置換しないで終了します。

[OK]を選択すると漢数字になります。

「番号!」
「一」
「二」
「三」
「四」
「五」
「六」
「七」
「八」
「九」
「一〇」

[キャンセル]を選択すると半角数字のままです。

「番号!」
「1」
「2」
「3」
「4」
「5」
「6」
「7」
「8」
「9」
「10」

スクリプトを書きかえればできること

  • 「番号!」という号令を書かないこともできます。
  • 10よりもっと大きな数字まで続けることができます。
  • 開始の数字を1以外にもできます。。
  • 数字は二つずつや三つずつ大きくすることもできます。
  • 大きな数字から開始して小さい数字にしていくこともできます。
  • 数字の前後をカギ括弧「」以外の文字・記号で挟むこともできます。
  • 数字の羅列だけにすることもできます。

「番号!」をなくし、漢数字で、20〜40まで、三つずつ大きくすることもできます。

「二〇」
「二三」
「二六」
「二九」
「三二」
「三五」
「三八」

「番号!」をなくし、10〜1まで、一つずつ小さくすることもできます。

10
9
8
7
6
5
4
3
2
1

20〜1まで、二つずつ小さくすることもできます。

「番号!」
「20」
「18」
「16」
「14」
「12」
「10」
「8」
「6」
「4」
「2」

漢数字に置換するときに注意すること

  • マクロで自動生成した文字列のみならずページ内の半角数字すべてが対象です。
  • できればファイルを新規作成して自動生成した文字列だけの環境で実行して下さい。

使い方

冗談マクロ:「号令一番」 (1KB)

  1. マクロファイルを保存する。
  2. ファイル名=マクロのコマンド名になるので必要なら解りやすい名前に変更する。
  3. EmEditorからマクロファイルを開く。
  4. マクロメニューの一番下に追加される。
  5. 並び順はあとから[カスタム]メニューで変更可能。

Presented by あくつ / e-mail:gfd04163@nifty.com / Copyright(c)1999-2015 acts labo〈アーカイブ〉 (無断転載を禁じます)
inserted by FC2 system