マクロ・サンプル集


■WZ EDITOR 4.0用−1

提供者:中村 友次郎さん(yujiro@impress.co.jp)
環 境:WZ EDITOR 4.0用

まず、ヘルプにある秀丸マクロをそのままWZに訳したものです。

<--------------------ここから

#include "windows.h"
#define DDWIN_PATH "e:\\ddwin\\ddwin.exe"
#define DIC_GROUP "辞書"

void main(TX* text)
{
txstr szWord,szCommandLine; //変数の宣言
txGetWordWhole(text,szWord); //szWordに検索単語を取得
sprintf(szCommandLine,"\"%s\" \,1\,%s\,%d\,%s",
DDWIN_PATH,DIC_GROUP,1,szWord); //コマンドライン引数を組み立てる
WinExec(szCommandLine,SW_SHOWNA); //実行
}

<--------------------ここまで

見ていただければ分かるように、WZのマクロというのは、まんまC言語です。
txGetWordWholeという独自関数が、秀丸版の最初の3行に相当します。
(選択されていたらそれを拾う、でなければカーソル位置の単語を拾う)
その後、sprintfでコマンドライン引数を組み立てて、Windows APIのWinExec
を使用してDDwinを立ち上げます。


■WZ EDITOR 4.0用−2

提供者:中村 友次郎(yujiro@impress.co.jp)さん
環境:WZ EDITOR 4.0用

次は、ちょっと凝ってみました。DDwinの特徴である「辞書のグループ分け」
を活かすようにしています。

起動するとカーソル位置に辞書グループ名がメニューが表示されます。
選択すると、DDwinを起動し、そのグループで串刺し検索します。

ユーザーは、マクロ先頭の「ユーザー設定部分」の、
1行めにDDwinの実行ファイルのパス(""を付けて)
2行めにメニューに表示したい辞書グループをこの書き方で
3行めにグループ数を
記述して設定を行うようになっています。

<------------------ここから

//ユーザー設定部分
#define DDWIN_PATH "C:\\Program Files\\DDwin\\DDwin.exe"
#define DIC_GROUP {"国語","英語","すべて"}
#define MAXGROUP 3

#include "windows.h"
#define MENUID 100

void main(TX* text)
{

//検索単語の取得
txstr szWord,szCommandLine;
txstr szGroup[MAXGROUP] = DIC_GROUP;
txGetWordWhole(text,szWord);

//辞書グループメニューの作成
HMENU hmenu = menuNew();
int i;
for(i = 0;i<=MAXGROUP - 1;i++){
menuStr(hmenu,szGroup[i],MENUID + i);
}

//メニューの表示、キャンセルされなければ検索の実行
int nGroup;
if(nGroup = txHmenuSelect(text,hmenu)){
sprintf(szCommandLine,"\"%s\" \,1\,%s\,\,%s",
DDWIN_PATH,szGroup[nGroup - MENUID],szWord);
WinExec(szCommandLine,SW_SHOWNA);
}
}

<--------------------ここまで



■Microsoft Word用マクロ
提供者:thakataさん(TAB02400@nifty.ne.jp)
動 作:Microsoft Word(97/98/2000)

Microsoft Word(97/98/2000)上で,カーソル位置から単語を取り込み DDwin に渡して検索させるマクロです(すでに選択文字列がある場合はそれを検索させます).

DDwin の起動パス,辞書の指定,二重起動の制限などは,実行時パラメータの部分(下の例では,"D:\program files\ddwin\ddwin.exe ,1,百科,,"の部分)を変更してください.おそらく,DDwinの起動パスと辞書グループ名(この例では「百科」)は変更の必要があると思います.二重起動の制限に関しては,下記の設定では,DDwinが指定した辞書グループですでに起動されている場合にはそれを利用し,そうでない場合は新規に起動して検索を行うようになっています.

--------
Sub DDwin()
'
' DDwin Search Macro ver.0.1
' 作成日 98/05/12 作成者 thakata
'
Dim DDwin, SearchWord, RetVal
DDwin = "D:\program files\ddwin\ddwin.exe ,1,百科,,"
If Selection.Type = wdSelectionIP Then
Selection.Expand Unit:=wdWord
End If
Set SearchWord = Selection.Range
RetVal = Shell(DDwin + SearchWord)
End Sub
--------

Word上で[Alt]+[F8]キーによって表示されるダイアログにおいて,マクロ名にDDwinを入れて「作成」ボタンをクリックすると,編集画面が現れます.そこに上の内容をコピーしてください(もちろんマクロ名は好きな名称でかまいません).同じダイアログから「実行」ボタンで動作を確認することができます.万一うまくいかない場合は,上の実行時パラメータが自分の環境に正しく合っているかどうかチェックしてください.

● マクロをツールバーに登録する方法

マクロをツールバーに登録するには,[表示]-[ツールバー]-[ユーザー設定]を選択し,[コマンド]タブの[分類]リストボックスから「マクロ」を選びます.右のリストに目的のマクロが表示されたら,これをツールバーにドラッグ&ドロップしてください.これでマクロ用のボタンが現れるはずです.

● マクロをショートカットメニューに登録する方法

Microsoft Bookshelfをインストールすると,Word上で文字を選択し,ショートカットメニューから「定義」を選ぶことで検索ができるようになります.このマクロも,以下の手順で,ショートカットメニューに加えることが可能です.

1. 「表示」メニューの「ツールバー」から「ユーザー設定」のダイアログを開く.
2. 「ツールバー」タブのリストから「ショートカットメニュー」をチェック(これで小さなメニューボタンある「ショートカットメニュー」バーが表示される).
3. 「ショートカットメニュー」の「テキスト」メニューから「テキスト」サブメニューを選択(文字列を選択したときのショートカットメニューが表示される).
4. このまま再度「ユーザー設定」のダイアログに戻り,「コマンド」タブの分類リストから「マクロ」を選び、作成済みの DDwin用マクロをドラッグ&ドロップで先のショートカットメニューに加える.(このときにメニューに表示される名称も変更可能で,キーボード操作用のアンダーバー付きアルファベットを表示する場合は,&Eのように&をつけて書けばよい.またボタンイメージの指定も可能.)
5. 最後にユーザー設定のダイアログを閉じれば完了.

DDwinで分野別の辞書グループを用意し,それぞれのグループを呼び出す複数のマクロを登録することで,Word上で辞書グループを使い分けることも可能です.

■Dana用

提供者:ハイパー定家さん
環境:Dana用

Dana Script は、しょごさん(shogo@sainet.or.jp)の作成によるもので、ご本
人の承諾をいただいております。
またDanaは http://www.rimarts.co.jp/index-j.html にあります。



Declare Function FindWindow Lib "user32" Alias "FindWindowA" (lpClassName$,lpWindowName$)
Declare Proc SetForegroundWindow Lib "user32" (hwnd%)
Declare Proc ShowWindow Lib "user32" (hwnd%,nCmdShow%)

Main ()
Shell("D:\ddwin\ddwin.exe ,1,Regular,,"+GetSelected())
ShowWindow(FindWindow("TApplication","DDWin - Regular"),1)
SetForegroundWindow(FindWindow("TDDWin","DDWin - Regular"))
End


「D:\ddwin\ddwin.exe」の部分は、ご自分の DDwin のパスを指定してください。
また「Regular」は、私の辞書グループ名で、これまたご自分の辞書グループ名
を指定してください。