下記のマクロを記述していますが
Dim msg
msg = MsgBox("データ入力は正しいですか。?", 1, "データ入力確認")
メッセージボックスの表示位置を真ん中でなくて、決めた位置に表示を変えることは
できるのでしょうか?操作方法があれば教えてください。
出来たらマクロ操作でお願いします。

A 回答 (4件)

WindowsAPIを使用するとできます。



1.SetWindowsHookEx という関数を使用しメッセージボックスをフックする用意2.MSGBOXを呼ぶ
をする。

以下フック関数内での処理
3.GetDesktopWindowでデスクトップのハンドルを得る
4.GetWindowRectでデスクトップの領域座標(解像度)を得て、中心座標を得る。
5.フックした関数の中で、ダイアログの表示位置を設定する。

といった処理が必要になります。
必要であればサンプルを記述しますが、API関数を使用したことがなければ、ちょっと理解しづらいかも知れません。
オリジナルのフォームを作成したほうが楽かも?
    • good
    • 0

メッセージボックスではなく、同じような


見かけのユーザーフォームを作成したらい
かがですか?
LoadしてShowする前に、Moveしてやれば
お望みの位置に表示できますよね。
もちろん、メッセージボックスとしての機
能を実現するために、多少フォーム内の処
理は記述しなくてはなりませんけどね。
    • good
    • 0

こんにちは。

maruru01です。
多分出来ません。私は思いつきません。少なくともVBでは出来ません。
そこで、フリーウェアのOCXなどを使用する方法があります。
下記に1例としてURLを載せておきます。
ただし、私は試してないので、VBAで使えるかどうかはわかりません。
下記以外にもベクターなどで検索して探してみて下さい。
では。

参考URL:http://www.vector.co.jp/soft/win95/prog/se195104 …
    • good
    • 0

Excel95、97、2000と使っていますが、できないと思っています。

新しいバージョンや何か技があるかもしれませんが。

どうしても必要なときは、ユーザーフォームを使って、メッセージボックスと同じようなダイアログを作ったこともありますが、今は無頓着になってきました。真ん中にボンと出しています。

ご参考に。(ならない?)
    • good
    • 0

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


人気Q&Aランキング

おすすめ情報