- 締切済み
エクセル2000マクロ操作
下記のマクロを記述していますが Dim msg msg = MsgBox("データ入力は正しいですか。?", 1, "データ入力確認") メッセージボックスの表示位置を真ん中でなくて、決めた位置に表示を変えることは できるのでしょうか?操作方法があれば教えてください。 出来たらマクロ操作でお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- TAGOSAKU7
- ベストアンサー率65% (276/422)
WindowsAPIを使用するとできます。 1.SetWindowsHookEx という関数を使用しメッセージボックスをフックする用意2.MSGBOXを呼ぶ をする。 以下フック関数内での処理 3.GetDesktopWindowでデスクトップのハンドルを得る 4.GetWindowRectでデスクトップの領域座標(解像度)を得て、中心座標を得る。 5.フックした関数の中で、ダイアログの表示位置を設定する。 といった処理が必要になります。 必要であればサンプルを記述しますが、API関数を使用したことがなければ、ちょっと理解しづらいかも知れません。 オリジナルのフォームを作成したほうが楽かも?
- kougasha
- ベストアンサー率32% (34/105)
メッセージボックスではなく、同じような 見かけのユーザーフォームを作成したらい かがですか? LoadしてShowする前に、Moveしてやれば お望みの位置に表示できますよね。 もちろん、メッセージボックスとしての機 能を実現するために、多少フォーム内の処 理は記述しなくてはなりませんけどね。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 多分出来ません。私は思いつきません。少なくともVBでは出来ません。 そこで、フリーウェアのOCXなどを使用する方法があります。 下記に1例としてURLを載せておきます。 ただし、私は試してないので、VBAで使えるかどうかはわかりません。 下記以外にもベクターなどで検索して探してみて下さい。 では。
- nishi6
- ベストアンサー率67% (869/1280)
Excel95、97、2000と使っていますが、できないと思っています。新しいバージョンや何か技があるかもしれませんが。 どうしても必要なときは、ユーザーフォームを使って、メッセージボックスと同じようなダイアログを作ったこともありますが、今は無頓着になってきました。真ん中にボンと出しています。 ご参考に。(ならない?)