- ベストアンサー
秀丸マクロ インプット関数使用時のメッセージボックスサイズについて
秀丸Ver4.17を使用してマクロを作成しています。 $a=input("a\nb\nc\nd\ne\n"); とした時に、最初のa、b、cは表示されるのですが、d、e、fは、メッセージボックスの縦の長さが短く隠れてしまいます。 どなたか解決方法をご存知ないでしょうか? 最新の秀丸にVerアップすれば、解決できるでしょうか? #過去に作ったマクロが多くあり、Verアップで正常に動かなくなるのでは?と思い、Verアップはためらっています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
input関数のダイアログは大きくはならないようです。 http://maruo.dyndns.org:81/hidesoft/hidesoft_4/x01666.html ただ、これは2001年の話なので、現在はどうなっているかわかりません。(私は、Ver4.16です) ここでも話に出てたように、マクロサーバや田楽サーバ/DLLを使うと、もっと柔軟なダイアログを 作れます。http://www.ceres.dti.ne.jp/~sugiura/hidemaru/macros/dgserver/ 以下は、田楽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 ===================
お礼
御礼遅くなってしまい申し訳ありません。 秀丸マクロ単体では解決できないことがわかりましたので、素直に教えていただいた田楽DLLや別の言語などを考えたいと思います。 ありがとうございました。