MessageBox のボタンを4つ表示する
『VBA:メッセージボックスのボタンを4つにしたい』(いま) エクセル Excel [エクセルの学校]
こういう記事があって、「無理」って書いていますが
Windows のヘッダ定義をもう一度確認してみましょう
#define MB_OK 0x00000000L #define MB_OKCANCEL 0x00000001L #define MB_ABORTRETRYIGNORE 0x00000002L #define MB_YESNOCANCEL 0x00000003L #define MB_YESNO 0x00000004L #define MB_RETRYCANCEL 0x00000005L #if(WINVER >= 0x0500) #define MB_CANCELTRYCONTINUE 0x00000006L #endif /* WINVER >= 0x0500 */
#define MB_ICONHAND 0x00000010L #if(WINVER >= 0x0400) #define MB_ICONINFORMATION MB_ICONASTERISK #define MB_DEFBUTTON1 0x00000000L #define MB_NOFOCUS 0x00008000L #if(WINVER >= 0x0400) #ifdef _WIN32_WINNT We can discount the flags like MB_ICONWARNING which are just alternate #define MB_USERICON 0x00000080L |
デフォルトを4番目のボタンにするというのがあります。
定義 0~6の7種類の定義しかなくてボタンは1~3個しか指定できないようになっています。
しかし、#define MB_HELP 0x00004000L // Help Button というのを追加すると
さらにボタンを1つ追加できるようになっているのです
int res=MessageBoxA(0,"メッセージボックスのボタンを4つにする実験\nテスト", "test",MB_ICONEXCLAMATION|MB_CANCELTRYCONTINUE |MB_HELP |MB_DEFBUTTON4); |
実際のコードです
ちゃんと4つボタンになりましたね。
ちなみに、MB_CANCELは右上の「x」と同じ意味なので、CANCELボタンの指定が無い
MB_ABORTRETRYIGNORE と MB_YESNOでは「x」が押せなくなります
(なぜか MB_OK は押せます)
質問者はExcel VBAなので出来ない可能性があると思います。
手元にはExcel2000しかないので、機能が少ないだけなのかもしれませんが。