• ベストアンサー
  • 困ってます

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

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

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数172
  • ありがとう数1

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

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

こんにちは。 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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

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

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

  • ExcelVBAでExcelのメッセージボックスを立ち上がらせない方法

     ExcelVBAでマクロを組んでいるのですが、Excelのメッセージボックスを立ち上がらせない方法はあるのでしょうか。    同じ名前の古いファイルが開いているとき、同じ名前のファイルを新しく作るマクロを作ると、同じ名前のファイルが既に開いています。置き換えますか?とメッセージボックスが開くのですが、プログラムの目的では常にOKなので、自動で置き換えたいのですが。出来ますか?。 

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

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

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

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

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

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

  • VBAにてメッセージボックスを最前面に表示させる

    エクセルVBAにて、指定時刻になったらメッセージボックスを、最前面に表示させるプログラムを作成中です。 時刻の指定は、ontimeメソッドの使用でできました。 しかし、最前面(他のアプリケーションを開いていても、メッセージボックスが手前に表示される)がどうしてもできません。。 VBだとAPI関数を使って、フォームを常に最前面表示はできました。 メッセージボックスで、このような表示方法は実現可能なのでしょうか? どなたか教えて下さい。よろしくお願いします。

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

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

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

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

  • ExcelVBAでユーザーフォームが勝手に閉じてしまいます。

    ExcelVBAでユーザーフォームが勝手に閉じてしまいます。 ExcelVBAを独学で始めてまだ2週間足らずの超初心者です。 Excelワークシートにコマンドボタン配置してそのコマンドボタンを押すとユーザーフォーム1が開き、ユーザーフォーム1に配置してあるリストボックスからリストをダブルクリックで選択すると、ユーザーフォーム2が開くように設定しています。ただ、ユーザーフォーム1のリストをダブルクリックして選択した時点でユーザーフォーム1が勝手に閉じてしまいます。ユーザーフォーム1を勝手に閉じさせないでコマンドボタンで閉じるようにしたいのですがどうしたらよいのでしょうか。レベルの低い質問かもしれませんが困っています。宜しくお願い致します。

  • ExcelVBA初心者

    いろいろとVBAサイトやQ&Aサイトを見ましたがあまりこれというのがなかったので質問させてください。 社員名簿を作成しているのですが、登録用フォームと検索用フォームの2つのユーザーフォームを使いデータを検索、入力ができるようにしたいのです。 登録用フォーム…ID、名前、生年月日、性別、住所を登録し、データ入力用シートへ転記する(登録用フォーム内には登録ボタンのほか、新規ボタン、データ訂正用ボタン、検索ボタンを配置する) 検索用フォーム…ID、名前、生年月日、性別、住所どれからでも絞込み検索ができるようにし、さらに絞り込んだリストを選び「選択して登録フォームへ」ボタンを押すと登録用フォームへジャンプし直接そのデータの書き換えができるようにしたい 形はできてきたのですがどうしてもわからず煮詰まってしまいました。 検索用フォームに配置したリストボックスの値のひとつを選び「選択して登録フォームへ」ボタンを押すと登録用フォームには飛ぶのですがどうやったらリストボックスで選択したデータがでてくるのかということです。 もしお分かりになられましたら教えてください。お願いします。