• 締切済み

エクセル2000マクロ操作

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

みんなの回答

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.4

WindowsAPIを使用するとできます。 1.SetWindowsHookEx という関数を使用しメッセージボックスをフックする用意2.MSGBOXを呼ぶ をする。 以下フック関数内での処理 3.GetDesktopWindowでデスクトップのハンドルを得る 4.GetWindowRectでデスクトップの領域座標(解像度)を得て、中心座標を得る。 5.フックした関数の中で、ダイアログの表示位置を設定する。 といった処理が必要になります。 必要であればサンプルを記述しますが、API関数を使用したことがなければ、ちょっと理解しづらいかも知れません。 オリジナルのフォームを作成したほうが楽かも?

  • kougasha
  • ベストアンサー率32% (34/105)
回答No.3

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

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

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

参考URL:
http://www.vector.co.jp/soft/win95/prog/se195104.html
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

Excel95、97、2000と使っていますが、できないと思っています。新しいバージョンや何か技があるかもしれませんが。 どうしても必要なときは、ユーザーフォームを使って、メッセージボックスと同じようなダイアログを作ったこともありますが、今は無頓着になってきました。真ん中にボンと出しています。 ご参考に。(ならない?)

関連するQ&A