プロが教える店舗&オフィスのセキュリティ対策術

秀丸Ver4.17を使用してマクロを作成しています。
$a=input("a\nb\nc\nd\ne\n");
とした時に、最初のa、b、cは表示されるのですが、d、e、fは、メッセージボックスの縦の長さが短く隠れてしまいます。
どなたか解決方法をご存知ないでしょうか?

最新の秀丸にVerアップすれば、解決できるでしょうか?
#過去に作ったマクロが多くあり、Verアップで正常に動かなくなるのでは?と思い、Verアップはためらっています。

A 回答 (1件)

input関数のダイアログは大きくはならないようです。


http://maruo.dyndns.org:81/hidesoft/hidesoft_4/x …
ただ、これは2001年の話なので、現在はどうなっているかわかりません。(私は、Ver4.16です)
ここでも話に出てたように、マクロサーバや田楽サーバ/DLLを使うと、もっと柔軟なダイアログを
作れます。http://www.ceres.dti.ne.jp/~sugiura/hidemaru/mac …
以下は、田楽DLLを使ったinput関数の代わりとなる秀丸マクロです。
田楽DLL Ver2.81で動作確認しています。

//=========== 田楽DLLを使ったinputマクロ ===========

disablebreak;
loaddll hidemarudir + "\\DengakuDLL.dll";
if (!result) {
message "田楽DLLをロードできませんでした";
endmacro;
}

$title = "幅40文字のダイアログ";
#width = 40;
$mes[0] = "1行目";
$mes[1] = "2行目";
$mes[2] = "3行目";
$mes[3] = "4行目";
$mes[4] = "5行目";

if (dllfunc("NEWDIALOG",$title,#width,"") ==0 ||
dllfunc("NEWCONTROL","text","",$mes[0]) ==0 ||
dllfunc("NEWCONTROL","text","",$mes[1]) ==0 ||
dllfunc("NEWCONTROL","text","",$mes[2]) ==0 ||
dllfunc("NEWCONTROL","text","",$mes[3]) ==0 ||
dllfunc("NEWCONTROL","text","",$mes[4]) ==0 ||
dllfunc("NEWCONTROL","edit","input","") ==0 ||
dllfunc("NEWCONTROL","okcancel","","") ==0) {
message "ダイアログの作成に失敗しました";
goto END;
}
if (dllfunc("SHOWDIALOG",hidemaruhandle(0),0) ==0) {
message "ダイアログの表示に失敗しました";
goto END;
}

$button = "";
while (strlen($button) == 0) {
$button = dllfuncstr("WAITCTRLNOTIFY",10);
}
if (dllfunc("ENDDIALOG") == 0) {
message "ダイアログを閉じるのに失敗しました";
goto END;
}
if ($button == "0") $str = "キャンセルされました";
else $str = dllfuncstr("GETCTRLSTRING","input");
message $str;

END:
freedll;
endmacro;

// ================ End of macro ===================
    • good
    • 0
この回答へのお礼

御礼遅くなってしまい申し訳ありません。
秀丸マクロ単体では解決できないことがわかりましたので、素直に教えていただいた田楽DLLや別の言語などを考えたいと思います。
ありがとうございました。

お礼日時:2005/12/22 22:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!