• ベストアンサー

ExcelVBA2000でOKとCancelのメッセージボックス

こんにちは メッセージボックスで表示されるボタンをOKとCancelにしたいのですが、vbOKCancel指定ではOKとキャンセル(カタカナ)になります。OKとCancelにする方法をお教えください。 無理でしたら、ユーザーフォームを使って独自に作りたいのですが、この場合は閉じるボタン(X)が表示されてしまいます。これを消す方法をお教えください。

質問者が選んだベストアンサー

  • ベストアンサー
  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.1

こんにちは。 VBAのメッセージボックスでは、無理ですのでユーザーフォームを使って 以下のように試してみてください。 Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Public Const GWL_STYLE As Long = (-16) Public Const WS_SYSMENU As Long = &H80000 'X ボタンを非表示 Public Sub XButtonHide(oDialog As Object)   Dim hWnd      As Long   Dim lStyle     As Long   '   hWnd = FindWindow("ThunderDFrame", oDialog.Caption)   If hWnd = 0 Then     hWnd = FindWindow(vbNullString, oDialog.Caption)   End If   lStyle = GetWindowLong(hWnd, GWL_STYLE)   SetWindowLong hWnd, GWL_STYLE, lStyle And Not WS_SYSMENU End Sub 'OK/Cancel User FORM Private Sub UserForm_Initialize()   Call XButtonHide(Me) End Sub

takuma_18
質問者

お礼

ありがとうございました。出来ました。

関連するQ&A

  • C# メッセージボックスのOKボタンを自動クリック

    C#のwebBrowserでメッセージボックス(OKとかキャンセルとかのボタンがついたフォーム)のOKボタンを自動で押したいです。 メッセージボックスはhtmlのjavascriptで発生しており、何をどうすれば良いか分かりません。 拙い説明で伝わったのかどうか不安ですが、ご教授下さい。

  • メッセージボックスについて教えてください

    urizakaです。 さて、javascriptのメッセージボックスというと警告のメッセージボックスを 表示するalertと「OK」と「キャンセル」のボタンが表示される「confirm」がありますが、これ以外で3つ以上のボタンを表示するJavascriptってありませんでしょうか?  確かVisualBasicにはあったと思うのですが…  すみませんが、教えてください

  • ユーザーフォーム上のコンボボックスのリンク先はどうやって指定?

    エクセル97です。ユーザーフォームにおいたコンボボックスに表示させたいワークシート上のリスト、およびコンボボックスで選択された値をリンクさせたいセルの指定方法がわかりません。オプションボタンやチェックボックスのリンク先指定方法もわかりません。またユーザーフォームには「OK」「キャンセル」ボタンもないのでしょうか? エクセル95のときはダイアローグシートにコンボボックスを置き、コントロールの書式設定で簡単に指定が出来たのですが、97に変えてからは、敢えてエクセル5.0のダイアローグを挿入しないといけないようなので、出来ればユーザーフォームで作ってみたいのです。どうかよろしくお願いします。

  • C#でボタンクリックをキャンセル

    C#でボタンクリックをキャンセル こんにちは。 C#+.Netです。 ・テキストボックスとボタンを持つフォーム ・ボタンが押された時にテキストボックスの内容をチェックする。 ・OKであれば、そのままフォームを閉じる。 ・NGであればメッセージボックスを表示して、フォームは開いたまま。 というフォームを作成したいのです。 フォームはShowDialogで表示させます。 ボタンのDialogResultには、DialogResult.OKを設定してあります。 ボタンのClickイベントを使って、メッセージボックスを出すことはできたのですが、フォームを開いたままにすることができません。 あるいは、ボタンのDialogResultはNoneのままにして、イベントハンドラ内から、フォームを閉じる方法がないかと思ったのですが、それもわかりません。 どのようにすればよいのでしょうか?よろしくお願いします。

  • メッセージボックスのボタンのフォーカスを設定したい

    ご質問させて頂きます。 Javascriptにてメッセージボックス表示時に、OKボタンとキャンセルボタンを設定した場合に、デフォルトでキャンセルボタンにフォーカスを当てたいと思っています。 設定方法をご存知の方がみえましたらご教授下さい。

  • ExcelVBA実行中にキャンセルをしたい。

     ExcelVBAで報告書を作成するプログラムを作成していますが、実行ボタンをつくりクリックすると終わるまで途中でキャンセルができません。  進行状況を表示するようなメッセージボックスみたいのを表示させてキャンセルボタンをつけるのが思いつきますが、どのようにしたらできるのでしょうか?

  • メッセージボックスの選択ボタンのテキストを変更したい

    メッセージボックスに表示される はい、いいえ、キャンセルのボタンのテキストを 自由に変更したいのですが何か良い方法があったら教えてください。 フォームを作ってメッセージボックスと同じものを作る方法ではなく、 MsgBox関数で表示されるものを変更したいです。 考え付いた方法ですが、メッセージボックスが表示された直後に APIのFindWindowなどでハンドルを調べて SendMessageでテキストを変更しようと思うのですが、 もっと良い方法があったらご教授いただけないでしょうか。 よろしくお願い致します。

  • Accessでエラーメッセージの表示を消したい

    いつもお世話になります。 また知恵をお貸し願えませんか。  テーブルのデータをキーを指定して呼び出し修正して更新するフォームを作成しました。 修正をしたあとの処理のため「更新」ボタンと「キャンセル」ボタンを設定しました。  修正を入力したあとに「キャンセル」ボタンをクリックした場合は正常に処理されるのですが、 何も修正入力せずに「キャンセル」ボタンをクリックすると(内容を確認したいだけ、違うレコードを 呼び出した等)   コマンドまたはアクション’元に戻す’は無効です というエラーメッセージが表示されます。 OKをクリックすれば処理は進められるのですが、できればエラーメッセージは表示させたくないと 思います。  「キャンセル」ボタンのプロパティでクリック時の[埋め込みマクロ]で下記のように指定しています。    条件        アクション        引数 エラー時        次、            コマンドの実行    元に戻す [MacroError]<>0 メッセージボックス  =[MacroError],[Description],はい,なし            閉じる         ,,確認 元に戻すがエラーになっているので 閉じる 以外を消去してところ エラーメッセージは表示されませんでしたが、修正を行ったあとに「キャンセル」ボタンを クリックしてもレコードの内容が変更されていたため元に戻しました。 どのように指定すればよいでしょうか

  • メッセージボックスのボタン文字を英語表示にしたい

    メッセージボックス(OK キャンセル型)のボタンの文字 の「キャンセル」を「Cancel」と英語表示にしたい のですが、どの様にすればよろしいのでしょうか?。 OSはWindows NT4.0(SP5) VBのバージョンは6.0(SP3)です。 回答をよろしくお願いします。

  • メッセージボックスで「はい」「いいえ」

    こんちにわ。 質問ですがjavascritを利用して「OK」「キャンセル」のメッセージボックスを出す事はできるのですが「はい」「いいえ」を選択させるようなメッセージボックスを作る事はできるのでしょうか? わかる方いらっしゃいましたら教えて下さい。

専門家に質問してみよう