━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ────────────────────────────── 「使いマクロ(旧名「まくりマクロ」)」シリーズ第6集 Ver.1 サブルーチン利用&秀丸マクロ附説 ━━━━━━━━━━ SESSION − 1 − ━━━━━━━━━━ ────────────────────────────── 検索支援サブルーチン『 kSearch 』を使いまくろッ!! ────────────────────────────── tukamac6.lzh 1994/11/01 水銀水(Suigwinsui)/小田 明夫(HGD01603) ────────────────────────────── ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [注意]折り返し文字数(半角での1行の字詰め)を80にして、お読み下さい ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ──────────────[目次]─────────────── ●§T●検索機能とは ●§T.1●検索前後の操作性 ●§T.1-(a)●検索文字列のセットが簡単 ●§T.1-(b)●検索後、次の動作への移行が簡単 ●§T.1-(c)●日本語文書に生かす、エディタの検索機能 ●§T.2●検索は2つのマクロで充分!! ●§U●検索マクロのオプション ●§U.1●検索マクロのオプション指定 ●§U.3-(a)●・wordオプション ●§U.3-(b)●・casesenseオプション ●§U.3-(c)●・regularオプション ●§U.3-(d)●・fuzzyオプション ●§V●検索マクロの基本文法 ●§V.1●検索の基本はコレだけ ●§V.2●文字列型変数とは ●§V.3●固定文字列の検索法 ●§V.4●自由な文字列での検索法 ●§V.5●検索自由自在のkSearchへ ●§W●kSearchで出来る事 ●§W.1●キャプションバー表示の意味 ●§W.2●「kSearch」サブルーチンの組込み法 ●§X●kSearch の応用と展開 ●§X.1●入力のバリエーション ●§X.1-(a)●入力ダイアログボックスに手動で入力 ●§X.1-(b)●起動後、文字範囲を指定する ●§X.1-(c)●起動前に文字列の範囲を指定してマクロを実行 ●§X.2●位置決定後の動作を変化させる例 ●§X.3●サブルーチンか、別マクロか? ●§X.4●多彩な変化を ●§Y●同梱マクロ ●§Y.1● kSearch のCPUに依存する問題点 ●§Z●「書きマクロ」Nシリーズ終了のお礼&新展開 ●§Z.1●「書きマクロ」Nシリーズ終了 ●§Z.2●「書きマクロ」αシリーズ開始 ●§Z.3●「書きマクロ」αシリーズ公開予定ラインアップ ●§[● 謝辞&宣言等 ────────────────────────────── ───────────[セッション本文]─────────── ●SectionT●検索機能とは 「検索」とは、文書の文字列の中から、指定した文字列を見つけ出す作業のことです。 私たちが普通に日本語文書を書く際にも「検索」機能は大変便利ですが、ソフトを開発す るプロのプログラマにとっては極めて大切な機能の一つと言えるでしょう。したがって、 元来がエディタ(プログラムを書くための道具。プログラマにとって鉛筆やペンみたいな 存在)である秀丸には、高速かつ高機能な検索機能と、その機能に対応したマクロが用意 されています。 そこで、プログラマ御用達のエディタの持っている高度な検索機能を、日本語文書を書 く際にもちゃっかり流用させてもらおうというのが、今回のセッションの主眼です(^^)。 ●SectionT.1●検索前後の操作性 検索には、次の3段階がある事をまず確認しておきましょう。 [1] 検索対象となる文字列を設定する(検索文字列の入力) [2] 実際に検索する(上下を高速に。検索の本体) [3] 検索後の処理を行う(元に戻るとか、発見位置で編集するとか) [2]の検索のスピード自体は、Windows上のワープロも非常に高速になっています。もち ろん、Windows環境では画面の全てが「絵」ですから、かつてDOSで言われていたようなエ ディタだけのアドバンテージとは言えないかもしれません。 しかし、プログラミングに最適化されたエディタのエディタたる特徴として、[1][3]も 忘れてはならない重要なポイントです。つまり、検索機能の主体となる検索速度の高速さ に加えて、検索前に検索文字列をどれだけすばやく設定できるか、また検索文字列発見後 はスムーズに次の動作に移行できるか、などの要素が操作性を大きく決定するからです。 エディタのプログラミング環境、あるいはエディタの使い勝手を左右する点として、こう した検索前後の操作、その能力の高さなどについても、注意しておきたいものです。 一方これらの特性は、日本語文書を作成する上でも、非常に快適な環境を創出させてく れる機能だと言えるでしょう。プログラムと日本語文書という違いはあるものの、文字列 を扱う事には違いはないのですから。では次に、日本語文書を作成する場合における、エ ディタの軽快な操作性について少しだけ触れておきましょう。 ●SectionT.1-(a)●検索文字列のセットが簡単 ・検索対象文字列の入力がメンドウだ! 検索するためには、とにかく「検索対象の文字列を検索ダイアログボックスに入力」し なければなりません。 通常、ワープロでは、文書上に検索したい文字列があるにも関らず、かなり遠回りをし てセットしているようです。たとえば、再度手動でタイプ入力しななければいけないケー ス。そこまではしないものの、文字列の頭と尾の位置を設定してやらないといけないケー スなどなど。ゆっくり文書を書く場合や、時間に余裕がある気の長い人の場合を除き、こ れらは不合理で二度手間ですよね。 一方、エディタである秀丸は、検索文字列の取得について簡単で高速かつ多彩な方式が 用意されています。そのほとんどは、ワンアクションで終了してしまいます。詳細は秀丸 およびマクロのヘルプを参照していただくとして、ここではその一例を紹介しましょう。 単語(日本語も含みますが)の先頭にカーソルをおいての「検索」実行です。これを実 行すると、検索ダイアログボックスが開くと同時に、検索したい単語が自動的に入力され ています。文字列の手動入力はまったく必要としません。さらに、マクロを使えば、ダイ アログボックスを出すことさえしないで、即、検索実行も簡単に実現します。 ●SectionT.1-(b)●検索後、次の動作への移行が簡単 ・検索とは、次の操作に移って初めて価値が出る操作です! 元来、検索という行為は、検索完了でその目的が達成される種の操作ではありません。 つまり、ある文字列を見つけるためだけに検索するのではなく、むしろ、ある文字列を見 つけたあとで何等かの処理を行いたいために検索する場合の方がずっと多いわけですね。 検索終了後の操作の移行のスムーズさというのは、その意味でたいへん重要なわけで、ワ ープロやエディタの操作性を決定付けるともいえるほどだと考えます。 たとえば日常の文書作成においても、検索を終了した後で、元の位置に戻りたい、何等 かの操作を加えたい、などの操作を実行しなければならないシチュエーションに多く遭遇 しますよね。ある文書で「秀丸」を検索しているとして、35個の秀丸が見つかり、最終の 位置の「秀丸」に移動したんだけど、検索を開始した位置の秀丸って何番目の位置だった ? そんな経験ありませんか? 多くのワープロでは、こんな当たり前の機能もなかなか実現されていないのが現状です。 (あるいは要望自体がないのかも?)さて、エディタである秀丸は、これらの操作をいと も簡単に実現しています。 ●COLUMN●ワープロの検索マクロも積極活用! 早晩、こうした当たり前の機能はワープロにも装備されるでし ょう。また、ワープロには、書体による検索とか、エディタと は別の観点からの検索機能が充実しています。さらにワープロ のマクロを使って、擬似的にエディタの多彩なジャンプ機能に 類似した機能を実現させ使っている方も多いでしょう。かく言 う私も、WORDや一太郎にはジャンプ系のマクロをやたら突 っ込んでいたりしています(^^;)。ちなみに、WORDも一太 郎も自分でお金を出して購入しているいわゆる「正規ユーザ」 です私(^^)。でないと文句も言えない(^^; ●SectionT.1-(c)●日本語文書に生かす、エディタの検索機能 以上で述べたかったのは、「プログラミング・ツールであるエディタには、文字列を検 索するための高速・快適な環境が用意されている」ということです。こんなにオイシイ「 文字列検索の機能」を、エディタのみなさまのモノだけにしておくのは、もったいない。 これを日本語文書作成にも生かしたい、というのが、「書きマクロ」シリーズの立場であ り、当「使いマクロ」シリーズの視座でもあるわけです(^^)。 ●SectionT.2・検索は2つのマクロで充分!! ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ・検索は2つのコマンドで充分 ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 秀丸の検索系マクロには、次の16個のコマンドが用意されています。 ┌────────────────────────────────┐ │ finddown 下候補 │ │ findup 上候補 │ │ getsearch 検索文字列の取得 │ │ gosearchstarted 検索開始位置へ戻る │ │ searchdown 下方向検索 │ │ searchup 上方向検索 │ │ replacedown 下方向置換 │ │ replaceup 上方向置換 │ │ replaceall 全置換 │ │ replaceallfast 高速全置換 │ │ setsearch 検索バッファの設定 │ │ goupdatedown 編集マークの下検索 │ │ goupdateup 編集マークの下検索 │ │ clearupdates 編集マークのクリア │ │ grep grepの実行(パラメタ付き) │ │ grepdialog grepの実行(ダイアログボックス付き) │ └────────────────────────────────┘ 「いっぱいあるのはわかるけど、なんだかなぁ〜」と心細くなりました? よくわから ないコマンドが一杯あって、不安になってしまいました? でもご安心下さい。 検索は2つのコマンドで充分です。 その2つのコマンとドは、searchdown,searchup だけ(^^; 残りの14ものコマンドは、 「付け足し」、秀まるお氏が付けてくれた「プレゼント」と(かなり大胆ですが)考える ことにしましょう。ま、2つのコマンドで秀丸の検索が十分に利用できるのなら、それに こしたことはありませんでしょう、みなさま(「春よ来い」状態(^^;)。 では、早速、検索マクロを「完全」習得をしちゃいましょう。習得と言っても、あっと いう間に終わってしまう程の、あっけないものです(^^; で、その使い方ですが、「検索したい文字列を、各コマンドの後ろに付ける」だけです。 次の例を見れば、使い方、簡単さをとりあえず納得して頂けると思います(^^; [search ex.1] searchdown "秀丸"; endmacro; これで「現在カーソルのある位置から下にある『秀丸』という文字列」を検索するわけ です。英語の search とは検索、down とは下へ、の意味ですから、searchdown というコ マンドの意味も、「現在カーソルのある位置から下にある文字列を検索してちょ」という ことだと想像がつきますね。その searchdown に「"秀丸"」をくっつけるんですから、「 searchdown "秀丸";」とは、「現在カーソルのある位置から下にある、秀丸という文字列 を、検索してネッ」という働きをすることがわかります。 少しだけ確認のため付け加えるならば、秀丸という文字列を指定する際には、前後を「" 」と「"」とでくくっておいてください。つまり、「searchdown 秀丸 ;」ではダメです、 念のため。行末の「;」もお忘れなく(と言いながら、最初はついつい忘れてしまうもの ですから、そんなに神経質になることもありません。単にマクロの実行が失敗してしまう だけです)。 一方、「現在カーソルのある位置から上にある『秀丸』という文字列」を検索したい場 合は、次のようになります。 [search ex.2] searchup "秀丸"; endmacro; 検索の基本は、たったこの2コマンドだけと思ってください。 たったこれだけですが、カーソルのある位置から上、下、つまり全文書の文字を検索で きる用意ができてしまったわけです。もちろん、これだけでは、いずれの場合も、最初に 『秀丸』を見つけた時点でマクロはストップしてしまいます。ですから、あくまで「用意 」ができたというわけです(^^; でも、「自分でマクロを書いて、そのマクロが動いた」というのは、無条件で嬉しいも んです。「嬉しい」「楽しい」と感じさえすれば、後は簡単。「じゃあ、あれはどうやっ たらいいんだろう」「もしかして、こんなことができるんじゃないかな」と思いはじめれ ば、秀丸マクロはもうあなたのものです(^^)。 実際に各サンプルマクロを実行してみてください。 (マクロ実行の方法がわからない場合は、次のCOLUMN参照) ●COLUMN● マクロ実行の方法 「マクロ実行」は、メニューバーからマクロを実行させます。 例として、BK01SH01.MAC を実行する手順を示します。 −手順− ・「マクロ(M)」→「マクロ実行(X)」→「マクロ実行ダイアログ」表示 ・「マクロ実行ダイアログ」の「ファイル名」に BK01SH01.MAC を選択 ・「OK」ボタンを押す(BK01SH01.MACが実行される) ●SectionU 検索マクロのオプション ・秀丸エディタの検索系の命令には、たくさんのオプションが用意されています。でも、 初めの段階では、迷うだけという場合もあります。最初から、細かいところをつつきすぎ ると「イヤ」になります、はい。「イヤ」になる前に、次の●SectionV、Wで、実際に マクロを動かして「天狗(^^)」になったほうが、秀丸マクロの習得には近道です。 ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ・「検索オプションは『ない』」が基本 ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ もっとも「検索オプションについて書いてあった章が、どこかにあったなあ」程度には 覚えておいてくださいね と言うところで、●SectionVへジャンプ。 ●SectionU.1 検索マクロのオプション指定 ・あらてめて言いますが、オプションの説明は初歩の方には必要ありません。サッと目を 通す程度か、読み飛ばして●SectionVへジャンプしてください。 検索で必要なコマンドは2つだけでした。ところが、秀丸エディタの「検索」には、「 大文字/小文字の区別」「単語」「正規表現」「あいまい検索」など多くのオプション設 定があります。これらの全ての設定をマクロで実現させることができます。さらに、マク ロの中だけで設定しておいて、マクロが終了すれば元の設定状態に戻しておく、などとい うツツマシヤカな動作だって細かく指定することが可能です(^^)。 が、でも、しかし。あえて言ってしまいましょう「検索にオプションは『ない』」と。 つまり、マクロの検索では、難しいことは考えず、ただただ指定した文字列をただただ見 つけ出すことにとりあえず全力を使えば良いのです。(「あ〜あ、い〜っちゃった、いっ ちゃった」てな感じで背中に冷や汗が流れるのを感じますが) そのうち、あなたの方から「見つけるだけなんてィヤッ」「だってモノ足らないもん」 「性器表現…あぅ、これじゃなくて、正規。うん、正規表現もやってみたい」などの不満 が出始めれば、もう「秀丸マクロ・パワーユーザー」への輝かしい『泥沼』に、御足を一 歩も二歩も踏み込んでいる証拠。そんな時、ちょっとだけ思い出してください、数々のオ プションがあったことを。 検索2マクロには、次のようなオプション指定が可能です。 searchdown 検索文字列 [,word] [,casesense] [,regular] [,fuzzy] searchup 検索文字列 [,word] [,casesense] [,regular] [,fuzzy] ●SectionU.3-(a)・wordオプション ・wordを指定すると,単語検索になります。 検索のダイアログボックスで「単語の検索」をONにした場合とまったく同じ動きをして、 単語だけを検索します。日本語の文書を扱っている場合には、直接的には意味をもちませ ん(裏ワザ的な使い方で日本語の場合にも便利な使い方がありますが、それはまた別の機 会に「秀丸酷使術−秘伝の秀丸・禁断の書−」てなタイトルのテキストを公開しますね)。 一方、プログラマの場合には、強烈に便利なオプションで、「例えばC言語のプログラ ムなどで変数iを検索したい場合など,普通にiで検索すると,intのiなどでも止まっ てしまって不便ですが,単語の検索をONにすれば変数のiだけで止まってくれます。」と 秀丸ヘルプに書かれてある通りです。 この例のマクロは次の通りです。 [search ex.3] searchdown "i" ,word; endmacro; くれぐれも「 searchdown "i" [,word]; 」なんて [ ] を付けたりしないでください ね。そんなバナナと思う人も多い一方で、「おっと」と冷や汗を流した人も少なからずい るはずですよね。最初は、みんなそのレベルからスタートします。安心してください。 ●COLUMN● 初歩的な内容の書籍 ただ、一般の解説書などでは、ここまでフォローしないんで すよね。(昔、BASIC のプログラム入力で、1行1行の行頭に、 10、20、30…と書いた覚えのある方も少なくないと思ってたりし ます)著者は「わかって当たり前」と判断しているのでしょう が、私に言わせれば「わかって当たり前」と思う「初歩的なミ ス」を「当たり前とはわからずミスってしまう」から、「初歩 的内容を主眼とした書籍」を購入するのであって、「ミスをし ない人」なんて最初から初歩的な本、買わないんですけどねえ。 最初の一歩、誰もが解っている事が解らないから「初歩から」 説明してある「だろう」と思う本に望みを託して、なけなしの 財布をはたいて買う「切ない初歩の人間の苦悩」なんて、まる で関知しないんだもんなア。 ●SectionU.3-(b)・casesenseオプション ・casesenseオプションを付けると大文字/小文字の区別をする検索を行います。 casesenseは大文字/小文字の区別をするという意味で,指定しない場合は区別されな くなります。つまり、このオプションを指定しないと、Part と part は、同じ文字列と みなされて両方とも検出されますが、区別するようにチェックすると両者はそれぞれ別の 文字列とみなされます。日本語の全角文字については、関係ありません。Partもpa rtも別物と解釈されます。(Partもpart、さらにパートまでも同じものとして 認識してしまいたい場合には、拡張テーブルエディタを使う方法があります。詳細につい ては、秀丸ヘルプ等を参照下さい。また「使いマクロ」でも別の機会に触れます) [search ex.4] searchdown "i" ,casesense; endmacro; これで、'I' と 'i' とを区別して検索できるようになります。 [search ex.5] searchdown "i" ,word,casesense; endmacro; このように指定すると、単語かつ大文字/小文字の区別をして検出できます。 他のオプションも同様に、どんどん追加して指定できます。オプションを区切るカンマ を付け忘れないことと、文末の';'を忘れないことです。 ●SectionU.3-(c)・regularオプション ・regularを付けると正規表現で検索します。 正規表現は、ある種の検索を行う場合には非常に強力かつ快適な世界を広げてくれます。 また、マクロの構文の書き方自体が別世界になってしまうほどの機能で、ハマりますが、 初めのうちは、別世界のオプションと考えておいても、大きな問題はないでしょう。 普通に文字列を検索していていると「正規表現をチェックしても、チェックしなくても 同じ結果しか出ない」と不満に思っている人もいるかもしれません(^^;。そんな時でも正 規表現なんか知らない、で済ましておきましょう。ま、通常検索で、さまざまな限界、不 都合などにぶつかってから正規表現を勉強しても、遅くはないでしょうから。 (マクロで正規表現による検索をさせる場合は、慣れないとトンデモナイ困難に直面し てしまいます。その回避法、解決法、サンプル・サブルーチンなどもまた別の機会に) ●SectionU.3-(d)・fuzzyオプション ・fuzzyを付けるとあいまい検索をします。 この機能を実現するためには、山田和夫氏(Nifty-Serve SGQ02500)によるJRE.DLLが必 要です(秀丸エディタのLZHファイルに、最初から同梱されています)。また、あいま い度をさらに高めた検索を可能にする「拡張テーブルエディタ(同氏によるシェアウエア )」は、非常に有用なソフトウエアです。たしかに高機能なんですが、いまはじっと我慢 の子、目をつむって通り過ぎましょう(^^; ●SectionV●検索マクロの基本文法 ・チョ〜簡単、検索マクロの把握はこれだけでOK いよいよ検索マクロを使った具体的なマクロの例をいくつかあげて、動きなどを見てみ ることにしましょう。 一見、難解に思われる秀丸の検索系マクロも、この基本部分の使い方(文法)さえ解れ ばあとは簡単です。(「基本部分」さえも簡単だったりします(^^)) ●SectionV.1●検索の基本はコレだけ 前の検索マクロの例では「秀丸」という文字列しか検索できません。ん? もう忘れち ゃったんですか。こんなマクロでした。 searchdown "秀丸"; そして、秀丸マクロの検索系マクロ文の基礎は、これだけで終了ですッ! ウソじゃあ りません。たった「コレだけでぇ〜すよっ、コレだけ」で秀丸の検索系マクロの基本文法 は終了してしまってます。この1文で「秀丸」という文字列を立派に検索できます。 ただ、もっと自由にラクに、検索文字列を指定したいと思うのが人情ですよね。これも 簡単に実現してしまいます。これもウソではありません。簡単です(^^; ●SectionV.2● 文字列型変数とは ・まず、文字列型変数について簡単に確認しておきましょう。 文字列型変数とは、頭に半角の「$」が付いている変数のことです。文字列を入れてお くカップのようなものとお考え下さい。そのカップの中には、コーヒーじゃなくて文字列 が入っているだけのことです。 次のような例から、だいたいの感じがつかめれば、それでOKです。 [Search ex.6] $s="秀丸"; $string="秀丸エディタ"; $NameOfWatasi="水銀水"; $100="番号"; $number1="長島"; これで、$s とか、$string とか名前の付いた変数に、文字列がセットされたわけです。 ねっ、「文字列型変数の扱い」てな言い方をすると難しいですけれども、上に並んだ変数 なら、なんとなくは理解できますよね。その「なんとなく」で充分です。 「$s="秀丸";」を例にして別の言い方をすれば、「秀丸という文字列を、$sというコッ プの中に入れておく」です。で、「秀丸」という文字列を使いたくなったら(検索とか置 換とかをしたい場合)、秀丸と言う文字列をそのたびに書き込むのはメンドウなので、$s という名前のコップをバァ〜とぶちまけるわけです。するとコップの中から、ポロリと「 秀丸」という文字列が転がり出てくる、その「秀丸」を使うという寸法です。 では、次に、文字列型変数を使って検索マクロの利用の幅をグ〜ンと広げてしまいまし ょう。 ■COLUMN 文字列型変数とは? 「文字列型変数はなんとなくわかれば、それでいい」なんてイ イカゲンな事を言ってしまいましたが、それでは心配と言う方 にちょっとご説明。「秀丸マクロでは,文字列型と数値型の変 数を使う。文字列型の変数は " と" で囲まれた文字列を記憶。 文字列型変数は先頭が$で始まり、変数名には30文字程度まで の適当な英数字を使用することができ、変数名に使用する文字 の大文字/小文字は区別される」というのが少しは正しい文字 列型変数の理解だと思います(^^; ■COLUMN 番号も文字列型変数? 「$a,$b,$c....$z まで変数を使いきったんだけど」と悩む人 がいました。変数名には、アルファベットの1文字だけが使用 できる、と思い込んでる。じゃなくって、変数名には1文字で はなくて、ほぼ自由に「半角の英数文字を使って」名前が付け られます。また、ちとゴチャゴチャしますが、$123,$001 など の変数も使用できます。$123は、123という数字ではなくて、1 23という名前の文字列型の変数なんですね。 ●SectionV.3●固定文字列の検索法 ・決まった文字列を検索してみます。 文字列型変数で固定文字列(次の例では「秀丸」)を検索してみましょう。 [Search ex.7] $s1="秀丸"; searchdown $s1; endmacro; な、な、なんと。これだけで「文字列型変数による検索」が終わってしまいました。よ 〜するに、『@「$s1="秀丸";」で$s1という文字列型変数に「秀丸」という文字列を記憶 させておき、A searchdown コマンドの検索させたい文字をセットするための場所に、「 秀丸」という文字列そのものではなく、文字列型変数の「$s1」をおいた』だけのことで す。それだけのことですが、実際はスゴいことなんですよ。 では、どうスゴいか、次の章でもう少し詳しくみてみましょう。 ●SectionV.4●自由な文字列での検索法 さっきから「スゴい」「スゴい」と言ってますけど、正直言って、何がスゴいのか、実 際にはよくわかっていないんじゃないでしょうか、ホント(^^;。「これなら、searchdown "秀丸"; の代わりに $s1 と書いただけじゃん」とスネたくなりますよね。そのとおり〜 ぃ。直接文字列を指定しないで、文字型変数を使えたじゃないッスか、とね。 でもこりゃ、やっぱりスゴいことなんです。これからマクロを書いていく上でとても大 切な「変数の扱い」が「で・き・る」ようになってしまったのです。……といっても、ま だまだ、あなた自身がスゴいとは認識できないでしょうね、それもごもっとも。そこで、 このマクロを、ちょっとだけ変えて、見た目にもその変化のがわかる、少しだけ派手なマ クロにしてしまいましょう。 [Search ex.8] $s1=input("文字列を入力してください"); searchdown $s1; endmacro; これは、文字列型変数に、マクロ文上で「秀丸」と直接かつ固定的に指定するのではな く、利用者が勝手に、検索させたい文字列を入力できるようにしたマクロです。たった3 行ですが、マクロを動かしてみるとかなり「うん、やってるな」という気が湧いて来るは ずです。どんな文字列でも検索できるようになったわけですからね。同時に、マクロを利 用する側の人間の自由度を大きくします。 このマクロを少しだけ説明しましょう。searchdown $s1;で、$s1 という文字列を検索 させているのは、以前のマクロと同じです。ただ、その文字列型変数$s1 の中身が問題。 以前のマクロだと「秀丸」という文字に限られていました。でも、今回は「秀丸」だろう が、「欄丸」(^^;?? だろうが、「武蔵丸」だろうが、どんな文字列でも自由自在になっ ています。変数を扱える自由さ、が少しはわかっていただけました? ま、わからなくても結構です。一歩一歩、100%理解できるようであれば、こんなセ ッションは読んでませんもんね。「なんとな〜く、なんとなく」理解できて、知らない間 に「秀丸マクロ」が「なんとなく」使え出せれば、それでいいと考えます。 ●マクロも「言語」? チトひねたことを言えば「マクロも言語の一種」とゆうこと です。こう捉えれば、そして「コンピュータ言語も広義の言 語」と捉えるならば、マクロ文の意味や文法の理解が先行す るのではなく、まず「動き」「使える」こと、無意味に使え てしまう「体験」、使えて表現できる喜びを「実感」できる ことこそが、大切だと考えます。 ま、学校で勉強する英語はなかなか覚えられないけど、実際 にアメリカへ行って生活すると、半年で英語をしゃべり出す、 このノリですネッ。(^_-) 大切なのは、これまで登場したわずか数行のマクロがわかるだけで、超便利な検索マク ロが扱えてしまうこと。なんと次の章だけで、当セッションはあっけなく終わってしまい ますが、あなたが手にした「検索の自由さ」は、数分前とは、格段に広い世界のものにな っているはずです。 ●SectionV.5●検索自由自在のkSearchへ ・検索自由自在のkSearchが目前だよ〜ん ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ・超簡単に秀丸マクロの検索が自由自在 ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 検索についてのマクロの説明にも、だいぶアキてきたと思います。本来の書籍なら、こ こで延々と検索オプションについて説明したり、replece(置換)コマンドやgrep(広域検索 )などについて触れるんでしょうが、今回はオンライン・セッション・テキストです。こ の辺で、バッチリ決めて今回のセッションを早々と終わる事にしましょう。 (こんな初歩的なマクロの使い方を説明している当セッションを、本格的なプログラマ のみなさんが読んでいるわけもないわけです。ちょっとワケのわからんことが続けばすぐ に飽きてしまう、普通の人々が対象ですから(私もその一人なんですが)) で、当初の目的は「簡単に秀丸マクロを使いたい」の一点だったわけです。 その「超便利マクロルーチン」の第一回公開が、「簡単検索の kSearch」。 ま、一気にkSearchの説明から入ってもよかったんですが、それではマクロ初心者の方 に不親切。そんでもって秀丸マクロが嫌いになってしまう可能性もあったものですから、 チト、回り道をして説明させて頂いた次第です。ま、秀丸マクロを理解している、という か、プログラミングの経験者であれば、「kSearch」は、検索のサブルーチンです」とだ け言えばすむんでしょうけれどもね。 いずれにせよ、いままでの説明が理解できれば、秀丸マクロの世界にどっぷりと浸れる 十分な下準備ができたわけです。では、おもむろに次の章に進みましょう。そしてアッと いう間に、kSearchを使えてしまったりしてしまいましょう(^^) ●SectionW●kSearchで出来る事 ・複雑な処理を kSearch で簡単に あなたは、もう、検索コマンドの2つを知ってますよね。 すると、自然な欲求として「検索したい文字列を全文に渡って次々に調べたい」という 思いが湧きあがって来てませんか? あるいは「上下の候補を次々に検索させる時に、ツ ールバーの虫眼鏡マークにまでマウスを動かすのがメンドウ。上下キー一発で指定する文 字列を上下にパッパッと移動させて文書を見てみたい」という気持ちが涌いてきたかもし れません。 はい、はい、了解。実現しましょう、その欲望……じゃない、要望。 ほんの数行のマクロで、キャプションバーに、次の表示を出せます。 ┌───────────────────────────────────┐ │ ●検索中 『秀丸』 7個 [↑]<2> [↓]<5> [^o]元所 [Ret]決定 [Esc]破棄 │ └───────────────────────────────────┘ ●SectionW.1●キャプションバー表示の意味 ・kSearck キャプションバーの説明をしておきましょう。 意味は、『「秀丸」という文字列を検索中です。ただし、「秀丸」という文字列はこの 文書全体に7個存在し、現在のカーソルに位置から上に2個、下に5個あります。[↑] [ ↓]キーで、上や下の「秀丸」の位置へジャンプできます。その際、上下の候補の数が変 化します。また、^oで元の位置に戻り、[Ret]で位置を決定して検索を終了、 [Esc]で 検索を破棄して元の位置に戻る、などが実行できます』ということです。 ま、言葉で説明すると、ゴチャゴチャしますが、使うと簡単・便利です。 また、決定での動作を追加するとか、破棄での動作を変えるとか、いろいろ改変できま すので、「あなた好みのkSearch」も比較的簡単にできてしまったりします。 ●COLUMN「^o」とは? 上の説明に「^o」と書きましたが、この意味は、コント ロールキーを押さえながら同時に「oキー」を押す」ことで す。コントロールキーは、キーボード種類によって異なりま すが、左端に位置する場合が多いです。「o」キーは、キー トップにアルファベットのo(オー)が記入されているキー のことです。 ま、くどいですが、以前あるマクロで「^o」とマニュアル に書いていて不調を訴える方がいたんですが、どんな操作を したかというと「シフトキーを押さえながら同時に6という 数字キーを押さえ、さらに0キー(数字のゼロキー)を押し た」そうなんですね。たしかに、シフトキーを押さえて、数 字キーの6を押すと「^」ではあるのですが(^^; ●SectionW.2●「kSearch」サブルーチンの組込み法 ・マクロへのサブルーチンの組込み サブルーチンと言われて、尻込みしてはいませんか。こうした作業をマクロでやろうと すると、なにやら難しいマクロをゴチャゴチャ書かないといけないような錯覚に捕われて しまいます。でも、心配ご無用。困った時の「書きマクロ」シリーズ姉妹版『使いマクロ (旧名・まくりマクロ)』シリーズ(^^; ま、とにかく、信じられないくらい、簡単に実現してしまいます。では、以下にその手 順を示しますねん。(あまりに簡単なんで、呆れないでくださいね) まず、次のマクロを見てください(このマクロは実行できませんけど)。 [serach ex.9] $s1="秀丸"; call kSearch $s1; endmacro; これは、「秀丸」という文字列を文書全体に渡って検索し、その個数、カーソル位置か ら上に幾つ、下に幾つあるかなどを検索表示/検索移動するマクロの中心部分です。 うん? searchdown の代わりに、call kSearch が書いてある、とわかりました? これが、サブルーチンといわれるものの呼び出し方です。サブルーチンというものは、ま、 コマンドを組み合わせて便利に使えるカタマリで、まるで新しく独自に作った一つのコマ ンドのように使えるもの、とでも覚えておきましょう。 では、実際に、e_srch10.mac を実行してみてください。まあ、なんでこんな事が、こ んな簡単にできるの、とびっくりして頂けることと確信しております、はい。 なお、e_srch10.mac とは、次のようなマクロになっているだけです。 [serach ex.10] $s1="秀丸"; call kSearch $s1; endmacro; kSearch: //if(!result)endmacro; .......... .......... .......... return; 「全文にわたって、秀丸という文字列を検索して、カーソルのある位置より上にある数 と下にある数をそれぞれ数え上げて、上下の位置に移動する」操作が、たったこれだけの マクロ文を書く事で実現できたわけです。 つまり、kSearch:...return;をつけたしただ けで、こうした機能がマクロで実現できるようになっているわけです。 では、このマクロをベースにして、今までと同じような処理を加えて、パワーアップし たマクロにしてしまいましょう。次の例は、自由に文字列を入力し、その文字列を検索表 示/検索移動するいっぱしのマクロ、汎用度の高いマクロに改変した中心部分です。 [serach ex.10] $s1=input("文字列を入力してください"); call kSearch $s1; endmacro; kSearch: if(!result)endmacro; .......... .......... .......... return; ウソじゃなかったでしょ、アッと言う間に終わってしまうって。これで、あなたの検索 ライフも快適、秀丸マクロライフも、泥沼へまっしぐら……(^^; (注意)キャンセルの場合に対応した行(kSearchの2行目)は、文字列を指定する場合に は、つぶしておいてください。(本当は、call kSearch の前に入れておくのが適当かと も思いますが(^^;) ●SectionX●kSearch の応用と展開 ・もっと自分好みに変えられます。 さきほどサブルーチンを組み込んだ e_srch10.mac をベースにして、自分なりに使い易 くしたり、一歩進めたマクロにするために、いろんな方法が選択できます。ここでは、そ のためのポイントになる部分などをあげてみましょう。 ●SectionX.1● 入力のバリエーションをつける ・入力は、非常に大切な部分です。 文書の上に検索文字列があるにも関らず、再度、検索ダイアログに該当文字列を手動で 入力するなんてのは(特殊な条件を除き)論外ですが、マクロを使用する条件に最適な入 力方法を選択しましょう。秀丸エディタのマクロで用意されている入力方法には、いくつ かのバリエーションがあるので、簡単にそれぞれについて触れておきます。 ●SectionX.1-(a)●入力ダイアログボックスに手動で入力 ・検索したい文字列をその都度、手動で入力する方法。 ワープロソフトなどでもよく見られる文字列入力の基本タイプです。検索ごとに検索し たい文字列を入力しなければならないメンドウさはあるものの、どんな文字列を検索した いのかが、はっきりと(いやがうえにも)マクロ利用者が認識できます。また、文書上に 無い文字列を検索させることもできます(「文書上に無い文字列を検索させたって、見つ からないだけじゃないか」と思い込まないでくださいね。いろんな方法があるんですぜ、 だんな。ま、これも別の「使いマクロ」でご説明いたしやす、へい)。 ただし、検索したい文字列が重なっている場合とか、過去の検索したことのある文字列 をそのたびに入力するのは、どうしてもナンセンスさを隠せないようです。したがって、 マクロ利用者に対して、手動入力に特別の意味を認識させたい場合とか、手動入力以外に 文字列入力の方法がない場合などを除いて、検索系のマクロを作る際、できれば避けたい 入力方法ではあります(10個位は過去の検索文字列を記憶していますが)。 ●SectionX.1-(b)●起動後、文字範囲を指定する ・マクロを起動させた後、検索させたい部分をリターンキーの確定で決定する方法。 この方法には矢印キーとリターンキーだけで文字列を指定できる便利さがありますが、 少しだけ二度手間っぽい感じがしないではありません。が、やはり手動入力に比べれば天 と地。数多くの文字列を連続して指定する必要があるマクロで、同時にマクロが起動して いる最中であることを利用者に強く意識させたい性格を持ったマクロの場合に、入力方法 として非常に適した方式であると思います。 (kakimac αシリーズで公開予定のマクロで「検索文字列登録マクロ k_FIND Ver.1」で は、これらの多様な入力形式を全て用意しておき、利用者の好みや目的に応じて自由に切 り替えられる選択方式をとっています。選択権は利用者にあるべきだと思いますね) ●SectionX.1-(c)●起動前に文字列の範囲指定をしてマクロを実行 ・文字列を範囲指定しておいて、該当マクロを実行するタイプです。 マクロ起動の操作以外はやらないので、操作する側の人の負担が軽くなります。入力部 分だけを独立したマクロにすることで、高速に立ちあげたり、連続して文字列を指定させ たりできるメリットがあるようです。 (なお「書きマクロ」シリーズでは、なにも範囲指定しないで起動する場合と、範囲指定 をして起動する場合は、別の動作をする場合が多いですが、それはそれなりの意味があり ます、一応。ま、近い性質の別の動作をする実質的には2つのマクロを用意しなければな らない苦労はありますが、利用者からすれば、別な方が自然な場合が多いです) ●SectionX.2●位置決定後の動作を変化させる例 ・様々な動作のバリエーションが展開できます。 [Ret]決定 [Esc]破棄が選択された時のマクロの動作を決めているのは、kSearchの中で も、次の▼と▲に囲まれた2組の部分だけです。ですから、Ret を押した時に、「終了し ます」と表示させたい場合には、call mes1;の行頭の「//」を削除します。また、制御を 返さないで、そのまま終了したければ、return;の代わりにendmacro;も可能です。 //////////////▼「[Ret]決定」選択時の処理−開始▼//////////////// // call mes1; return;//その場のカーソル位置で(終了)、制御をcallの位置に戻す //////////////▲「[Ret]決定」選択時の処理−終了▲///////////////// }else if(#ic==27){escape; //////////////▼「[Esc]破棄」選択時の処理−開始▼////////////////// moveto ##x1,##y1; return;//元の位置に戻って(終了)、制御をcallの位置に戻す //////////////▲「[Esc]破棄」選択時の処理−終了▲////////////////// もちろん、こうした簡単な動作はあくまで例です。さらに複雑な動作も実行させる事が できます。それらもすべて、上記のマークに囲まれた部分だけを付けたせば、簡単に実現 できるはずですから、やってみてください。 ●SectionX.3● サブルーチンか、別マクロか? で、各動作を決める部分のマクロが長めになる場合には、それをサブルーチン化するか、 あるいは、マクロを別に用意するか、各自で選択することになります。 この場合、サブルーチン化するメリット&デメリット、また、別のマクロにしてしまう 場合のメリット&ディメリットを、それぞれの特性として把握しておく必要があります。 特にパラメタの引渡については、両者では変数の運用方法においてかなりの違いがありま す。ですから、どちらが有益かは一概に判断できません。この辺の詳細な比較&利用方法 については、改めて別のセッションで述べようと思います。 ●SectionX.4● 多彩な変化を ・と、まあ、簡単にkSearchをサブルーチンとして使った検索系マクロを簡単に説明させ て頂きましたが、少しは、ご納得いただけました? kSeaarchは、検索系のサブルーチン ですが、このサブルーチンを他の動作をさせるマクロに組み込む事で、目的の動作がより、 簡便になるように利用して頂ければ幸いです。 kSearch をサブルーチンとして各自の利用しやすい状態に併せたマクロを作れば、非常 に快適な環境を自分なりに簡単に作って行けると思います。で、トラブルがおきれば、会 議室へアップすれば、誰かが、それなりのアドバイスをしてくれると思います。で、素敵 なマクロができたら、どんどんfwinf lib-12 へ公開しましょう(^^)。 ●SectionY●同梱マクロ ・同梱してある2つのマクロは、次の2つに該当するマクロです。 [serach ex.9]...........[E1SRCH09.mac] [serach ex.10]..........[e1srch10.mac] 適宜、動かしてみて「うんだぁやぁなぁ、でけぇるべなぁ〜」「なんだッ、マクロって 簡単じゃん」「ワシかて、わかるやんけぇ」「おいどんも、やってみるでごわすぅ」とか、 いわゆる「天狗状態(^^;」ってゆ〜んでしょうか、こんな状態になって頂ければ、当セッ ションの目的は達成されたのでは、と思ったりします(^^;。 ●SectionY.1● kSearch のCPUに依存する問題点 ・取りこぼし現象 全文を調査して、カーソルのある位置より上にある候補と下にある候補を移動しますが、 マシンのCPUが486/66の場合では、あまり早く上下矢印キーを押すと、画面の移 動と位置の数字計算とが追い付かなくなり、取りこぼすことがあるようです。あまりに早 い矢印キーでの上下候補の移動は、避けた方がいいかと思われます。 ぺんちぃあむ90では、全く問題はないようですが(^^)。 ・秀丸マクロ・コンパイラへの期待 今後、秀丸マクロの最大の課題は「スピード」ではないでしょうか? スピードの出る ように書こうとは思うんですが、なかなか、テクニック不足で思うようにはならない。い わゆるインタプリタ型とゆ〜んでしょうか、その手軽に使える性質の裏返し、宿命と言え ばそれまでですが(^^; ただ、○太郎のマクロにも中間コードまでのコンパイラが付くとか付かないとかの今日 この頃のご時勢。こりゃいっちょ、「秀丸マクロ・コンパイラ」なんてソフトを。と誰か、 天才の奮起に期待したいところですねっ!!!。 ただ超素人から見ても、通常のソフトを作るのと、コンパイラを作るのって、やっぱり、 根本的に全く違う技術なんでしょうね、とっても。 ●SectionZ●「書きマクロ」Nシリーズ終了のお礼&新展開 ・私、水銀水(Suigwinsui)がなりふりかまわず(^^; 勝手に公開を続ける「書きマクロ」 シリーズ。kakimac1.lzh からはじまって、ついに、1桁を終了することが出来ました。 これも秀丸エディタというソフト、また、公開の場としての通信環境があるからこそと、 秀まるお氏、ならびに、ニフティーサーブ、WINDOWSフォーラム、各々の運営担当 のみなさん、そしてとりあえずダウンロードして頂いた方々、また、日々利用して頂いて いる皆様方に、深く深く感謝いたしております なお、書きマクロシリーズの番号の若いマクロは、事故による長期の隔離入院(ほとん ど独房状態。おまけにマウスのスイッチを押し下げてクリックする力さえないという悲惨 な肉体&精神状態での入院生活)から退院してほどなく書き始めたマクロですので、元々 遅かった頭の回転がさらにレベルが下がった結果の低速・低能力さ、加えて、これらのマ クロ、マニュアルの多くの部分を自分の意志で何とか動かせる程度の左手のみで(それも 当初は3本の指しか動かなかったりします、うぐっ(;_;)。がんばってたんですねえ、我 ながら)書いていた等々をはじめとする多種の原因が複合的に作用した結果のため、マク ロプログラムの稚拙さ、マニュアルの日本語の不明瞭さ、などなど、どうしようもない部 分が散見される「程度の低い」状態での公開でしたが、このような種々の問題にもかかわ らず、一応、大きなトラブルもなく(私が知らないだけかもしれないけど)ここまで公開 させて頂き、また、その公開の経緯等のおかげをもちまして私自身も最低限の人間性、最 少限の社会性を少しずつ(もちろんまだまだではありますが)相応の快復をさせて頂きま したことを、この場を借りて深くお礼申し上げます。 (ま、おかげでこれからは『臨死体験ライター』と名刺に入れておけるほどの、スッゴい 『アッチの世界』を見て来ましたけどね(^^;)(一応、私も大学時代には工学部に席を置 いておりましたから、「客観性」とか「論理性」とか、無視はしないつもりですが、まあ、 とにかく、おもしろいものを、見させてもらいました、はい。ただし、その件に関する「 再現性」についてだけは、私、もう、あの〜、その〜……です(^^;) ●SectionZ.1●「書きマクロ」Nシリーズの終了 ・現在までの従来シリーズのことです(^^; 現在までのkakimac 1,2,...,9 は、番号(Number)ですので、都合上、Nシリーズと呼ば せて頂きます。これらは今後、それぞれ数回のバージョンアップを完了した段階ですべて 消去して、一つにまとめようと考えています。 ●SectionZ.2●「書きマクロ」αシリーズの開始 ・新しく始まるシリーズです ファイル名の末尾の1〜9を使ってしまった。時期的にもほど良い。この2点から、新 しく「書きマクロ」αシリーズを開始します。これは、ファイル名の末尾がアルファベッ トになっただけの「書きマクロ」シリーズです。 たとえば、kakimacA.lzh,kakimacB.lzh てな具合です。もちろん、普通のファイル名と しては、大文字/小文字の区別は付かないので、KAKIMACA.LZH,KAKIMACB.LZH などになっ てしまいますが、「かきまっか」「かきまし〜び〜」とは読まないで、胸の中で可愛らし く「かきまっくエ〜」とか、「かきまっくビィ〜」と読んで頂ければ幸いです。 ●SectionZ.3●「書きマクロ」αシリーズ公開予定ラインアップ ・あくまで予定です(^^; 本業の方へも少しずつ復帰している状態(一応、マジメ派のフリーライターです)なの で、時間的、精神的余裕があまり残されていないような……。でもまあ、焦ることもない ですよね。待っている人がいるわけじゃなし。強制されて作っているわけでもなし。・・ ・。ないないづくしの「書きマクロ」、うぐっ(;_;)。 とりあえず、生きてる間は人生、パソコンを使えるうちは水銀水。んだものですから、 マイペースでやっていこうと思っております。 秀丸エディタで、日本語文書を作成する 「書きマクロ」αシリーズ公開予定マクロのラインアップ [凡例] [●……なんとか動いているマクロ] [■……テスト中マクロ] [▲……試作中マクロ] [・……まだです(試案中)] [◎……公開済みマクロのバージョンアップ予定] [文書管理系] ●複数文書状態複数復元マクロ……複数のデスクトップを保存/復元する 複数の目的に複数ファイルを開き秀丸を駆使するテキストパワーユーザ必須 カーソル位置の復元、文字の大きさ、書き換え禁止等多くの状態を記憶復元 非常に便利です。スタートアップグループの秀丸に細工すると更に超絶快感!!! ◎文書オープン便利マクロ……現行の k_ALAS 開く時のエイリアス強化版マクロ 文書を開く際の深いディレクトリを行ったり来たり、この悩みから解放します 登録できる「文書を開く際のエイリアス」の数を大幅に増やしています ワイルドカード指定の複数ファイルと、単一起動ファイルを見分け易く表示等々。 ●拡張保存マクロ……無題ファイルの簡単保存&既存ファイルのバックアップ等 無題ファイルを「自動ネーミング機能」で保存。年月日連番や文字列など様々に 自動的に非重複ファイル名を決めます。また、既存ファイルのバックアップも。 ディレクトリの存在を忘れてしまいそうです、あたし(^^; ■文書個別情報管理マクロ……文書ごとの情報を保存する 折り返し文字数(1行の字詰め)、文字のポイント数など個別に記憶管理する ほとんど、一太郎Ver.2 の世界です。超便利だけど、ここまでやるべきか疑問も? 見出し付き文書保存なども実現しているのですが、ニーズがあるかどうか、また、 エディタでここまでやる、一種の「ひけめ」なんかもあったりします(^^; ▲複数自由文字列の文書検出マクロ……複数の文字列を含む文書を検出 何の索引を作ることなく、任意の文書から、複数の文字列を含む文書だけを検出 テキストでデータベース機能として有為な機能(恐れ多く言えば拡張型GREP(^^;) ・文書修正履歴管理マクロ……修正者、修正部署など、文書閲覧時の修正履歴の把握 執筆・加筆、閲覧担当等が複数になる場合の文書の管理現場の必須の履歴管理 (どこまでやるべきか、思案のしどころです) [文字列操作系] ●検索文字列登録マクロ……検索したい文字列を複数のセットにわけて記憶。 一度、検索した文字列を永久保存。文書中のまぎわらしい語の統一にも便利。 汎用メニューサブルーチンとしてもお使い頂けるのではとの、自信作ですッ!! ●索引/目次高速作成マクロ……簡単に索引登録語を作り、索引(頁/行)を作成 テキストベースのみでフィニッシュしたので良い場合に高速索引作成マクロ このテキストの目次作りに使いました。(行数部分はカットしましたが) ▲文字情報管理マクロ…データベースはもういらない!? せっかくDBを導入しても眠っているデータは多い。文字情報管理を超合理的に Accessのマクロとの連携を直接秀丸エディタから、の部分も開発中 ・置換文字列登録マクロ……検索文字列登録マクロの置換版 個人的には、あまり必要性を感じないのですが、翻訳従事者には必要らしい(^^; うん、置換前と後の文字列の記憶ファイルは、ある意味で重要かもしれない ◎日付文字列マクロ……k_DATE Ver.2 の強化、高速版 とにかく、変換スピードをあげることですねッ!!! 機能的にはまあまあでも、あの早さでは・・・(;_;) [編集関連系] ◎連番作成マクロ……自由な形式の連番を挿入する 長い文書や章建てを厳密に行う場合に不可欠な連番機能を自由形式で提供する 連番のセットを複数持てるようになりました。連番前部のマスクをどう割り切るか? ■脚注作成マクロ…全国の論文作成者(文・理とも)に朗報。簡単明瞭・超効率化術 効率的論文作成のための脚注機能。覚え書き機能としても幅広い利用展開も期待 「これで日本の研究者の論文作成効率を絶大にアップできる」masasan談(^^; ●文献データベースマクロ……文献情報を一括して効率的に管理 著作者、著書、出版社名等の一部文字列を3種まで指定、合致候補を検出表示 汎用の文字列データベースとしての展開も楽しい。もち研究者御用達必須マクロ ▲定型文書作成マクロ……テキストテンプレート機能で効率的な文書作成を!! 形式の決まった文書を対話形式とデータ流し込み形式により短時間で効率的に作成 定型手紙文とか、季節の挨拶とか、よくあるヤツです。が原文をどうするか(^^; ▲アウトラインプロセッサマクロ……そのまんまです(^^; エディタのアウトラインプロセッサというのは、dBASEプログラム用にスゴいのが ありましたね。秀丸で「美しく」実現するのは、私には結果、無理かも(^^; ◎先割り原稿(フォーマット原稿)簡単作成マクロ……職業ライター必須マクロ 字詰めと目標行数の動的変化にも自由自在に対応する別名「PageMakerいらず」 24字×56行、32字×89行…等どんな折り返し文字数の場合でも全て達成率まで算出 ●小見出分断回避マクロ……本文4行どり小見出が本文最下行2行から始まる悲劇を回避 小見出の位置を誌面最下段や最上段で分断されないようにチェックする 一般の人は、必要ないマクロですが、必要な人は必要みたいです、はい。 [印刷系] ◎印刷自在マクロ……他の印刷専門ソフトを秀丸から管理 縦書き印刷/段組み印刷/各印刷プレビューなどを簡便に実現 テキストベースでは、これ以上の環境は不可能&不必要でしょう(^^) [一般系] ◎秀丸エディタをシェルにして文書環境を極めるマクロ……秀丸シェル化マクロ Windows時代ならではの、文書作成に限定した究極の最適化環境を すべてのソフトの操作を秀丸からやってしまいます。(当然のことですが(^^;) ◎数字音声応答マクロ……各種のマクロ結果で、数字で表されるものを音声で発声 「字詰めは全角で23字です」と音声が状態を知らせます。(数字発声は299まで) 弱視など視力の弱い人にウインドウズは大きな道を開いた。秀丸も対応。 ▲上記「書きマクロ」αシリーズ統合化マクロ……上記全マクロを一括管理します αシリーズのマクロを統合して運用するための司令塔的存在 起動条件を検知して、最適化した知的動作をめざしていますが…今の所(^^; P.S.希望的観測 「書きマクロαシリーズ」をワンパックにして、「マクロの組み方のポイントと有益部品 のマクロサブルーチン」+「テキストベースの日本語文書の効率的管理&作成法」という 本を出したら、世のため、人のために、少しくらいは貢献すると思うんだけど、勝手な希 望的観測なんだろうなぁ(^^; (マクロを組もうと思う人間と、快適に日本語文書だけを書けたら良いという人間は、ど う考えても別種の人間だろうから、やはり一冊にはならんなあ)(ま、こんな本よりも「 ○太郎、速習即解」みたいなヤツが売れるんだろなぁ、やっぱ) (でも、秀丸エディタに関する書籍のニーズって本当にそんなに無いのだろうか? 残念 ながら、その辺の事情が理解できない私って致命的なオバカサンなのかも???(^^;) ●Section[ 謝辞&宣言等● ・当マクロは、斉藤秀夫氏のシェアウエアである[秀丸エディタ for Windows Ver.1.32] のためのフリーウエアです。このマクロは無料ですが、使用するのに必要な秀丸は、 シェアウエアという形態をもつ商品です。また、当マクロ集は、秀丸の作者とは全く無 関係です。当マクロ集で生じたトラブル等で迷惑のかからないようお願いいたします。 ・また、使用上のいかなる損失に対しても保証しかねます。各自の責任において使用・改 変等を行って下さい。なお、当マクロ集に関する苦情、問題点、要望、バグ等のご指摘 (つまらないスペルミス等も含みます(^^;)、などなどを発見した場合等には、 FWINF MES 12 (ウインドウズフォーラムの12番会議室)にどうぞ。できるだけの対応 はさせていただく覚悟です、はい。 ・当マクロはフリーウエアですが、砂場に落ちている「猫の運個」ではありません(^^; 出版権を含む複製権、二次的著作物の利用に関する原著作者の権利等の一般的著作権 を放棄したものではありません。(と宣言しておけと法律のプロが言ってました(^^)ゞ だからといってなにがどうなるものでもないとは思うんですけど、ねえ。 しかし、生まれたからにはF・Fされて、某アイドル歌手なんかを片手でかばいながら もう一つの手をカメラに向かって広げ「彼女の肖像権はどうなっているんだ」とか「貴 社は、私のソフトの著作権を侵害している」とカッコ良く叫んでみたい、変な欲求のよ うなものは、誰の心の奥底にも、かすかながら確かに存在してますよね、確かに。 ・当マクロ、当マニュアルで多用している罫線は、高池新一(GFA02114)氏による 『秀丸用罫線マクロ「t_keisen.mac」』を使用させていただきました。 ・当マクロのマクロ作成上の基幹となった「脚注マクロ」は、米国西海岸留学中の前途、 洋々たる青年医師((^^;??)masasanの基本アイディアと緻密・厳密・過酷なアドバイス により、現在、インターネットを通じて製作が続いています。 公開は、秀丸の新しいバージョン[Ver.1.33]の発表に合わせた時期になりますが、それ まで、じっくり熟成させるつもりですので、よろしくお願いいたします。 ・Windows上のデータを効率的にエディタで扱える環境構築へ向けて、秀丸エディタ「書 きマクロ」αシリーズ公開開始が迫っております。 今後とも「書きマクロ」「使いマクロ」両シリーズに対して、御支援、御声援のほど、 よろしくお願いいたします。(なんかジジ臭いなぁ(^^;)) ・では、皆様のより一層の快適な日本語作成環境の発展と御多幸を祈りつつ・・・(^^) 平成06年10月28日(金) 午後04時05分15秒 水銀水(Suigwinsui)/小田 明夫(HGD01603) ↑ ↑コノ日付、kakimac4.lzh の中の k_DATE Ver.2 によってキー一発で入力しました。 人呼んで「セルフ・アド(なんのこたあない自己宣伝ですわ(^^;)」 kakimac4.lzh( k_DATE Ver.2 ) もよろしくm(__)m 個人的には、非常に便利だと、すっかり思い込んでます(^^; ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 『日本語文章作成に携わる全ての方々に、秀丸エディタを、ファインアジャスト!!』 「書きマクロ」「使いマクロ」シリーズの願いです。 ────────────────────────────── 水銀水(Suigwinsui)/小田 明夫(HGD01603) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━