• ベストアンサー

【VBAユーザーフォームで閉じるボタンを表示したくない】

ユーザーフォームの右上閉じるボタン(×)を表示しない方法が見当たりません。 どなたかご存知の方、ご教授願います。 開発言語:Excel2000VBA OS:Windows2000

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

  • ベストアンサー
  • JeanneNet
  • ベストアンサー率48% (100/208)
回答No.2

こんにちは、じゃんぬねっと です。 API 使っても消せないかなぁ。 DeleteMenu で、システムメニューから「閉じる」を消すだけですから。

mari0629
質問者

お礼

じゃんぬねっとさん、回答ありがとうございます。 DeleteMenu(API)で要件どおり実装することができました。 http://www.asahi-net.or.jp/~ei7m-wkt/apitest2.htm どうもありがとうございました。

その他の回答 (1)

  • ta123
  • ベストアンサー率51% (95/186)
回答No.1

おそらく×ボタンを非表示にする方法はないと思います。 当該ユーザフォームのイベントプロシージャ UserForm_QueryCloseを使って処理をキャンセルする代替方法があります。 Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 'ユーザフォームの×ボタンが押された場合 If CloseMode = vbFormControlMenu Then '処理をキャンセルする Cancel = True End If End Sub ※MsgBoxでクローズできないメッセージを表示するのが親切かもしれません。

mari0629
質問者

お礼

早速の回答をありがとうございます。 VBでは×ボタン表示を制御できたので、VBAでもできるのかなと思っていました。 それらしきプロパティも見当たらなかったので、やはりイベントで拾って動作制御する方法しかないのですね。

関連するQ&A

  • 'ユーザーフォーム右上隅の[×]ボタンを表示しない

    Excell VBA にて ユーザーフォーム内に[コマンドボタン]を配置し、このボタンにてユーザーフォームの消去およびその他の作業を行うコードを書い動作させています ユーザーフォームの右上隅に表示されている[×]ボタンを表示しない(又は消去する)方法をおしえてください

  • EXCEL VBAのフォームについて

    EXCEL VBAでフォームを表示したときに、最小化ボタンを表示させることは出来ないのでしょうか。 通常、フォームを表示させると、右上にXのボタンのみ表示されますが、通常のWindowsの画面の最小化ボタンを表示させる方法が、判りません。 この機能は、EXCEL VBAには実装されていないのでしょうか。また、最小化ボタンでなくてもかまいません。要は、やりたいことは、表示されているフォームを一時的に最小化する為に、その機能を実装したいと言うことです。ご存じのかたおりましたら、教えて下さい。 当方の環境はwindows-xp excel-2000です。

  • ユーザフォームの押下コマンドボタンの区別は?

    Excel2007のVBAについて質問します。初心者です。 コマンドボタンが2個あるユーザフォームを表示します。それぞれのボタンが押されると対応する処理をして制御がユーザフォームを表示した直後に戻るようになっています。 このとき、どちらのボタンが押されたのか区別する方法をご教示頂きたくよろしくお願い致します。

  • ユーザーフォームのコマンドボタンをマクロで操作したい

    Excel97でユーザーフォームを出しながらセルに入力できるようにしたいので、 http://www.ap.wakwak.com/~miko/Excel_Note/11-01_userform.htm#11-01-13 このサイトに書かれているように、ユーザーフォームにコマンドボタンを作成して、 ボタンのコードを  Private Sub CommandButton1_Click()   Application.GetOpenFilename  End Sub とし、「ファイルを開く」ダイアログを表示させてキャンセルするようにしたのですが、 この「コマンドボタンをクリックしてファイルを開くダイアログをキャンセルする」操作は 自動化できるのでしょうか? パソコンに慣れていない人用に作っているものですので、できるだけ使う人の操作を 少なくしたいのです。 ブックを開いた時にユーザーフォームを出すところまではできたのですが、 ユーザーフォームのコマンドボタンを自動的にクリックしてダイアログを キャンセルする方法がわかりません。 ご存知の方、どうぞよろしくご教授お願いいたします。 使用しているのは、 OS:Windows98SE ソフト:Excel97 です。

  • ExcelVBAでユーザーフォームの閉じるボタン「×」を使用できなくする方法

    VBAで、ユーザーフォームを開くと右上に「×」の閉じるボタンがありますが、これを使用できなくする方法を教えてください。 回答よろしくお願いします。

  • VBA ユーザーフォームを速く開く方法について

    VBA ユーザーフォームを速く開く方法について 現在Excel2000を使用しています。 VBAにてユーザーフォーム1と2を作成して、ユーザーフォーム1のコマンドボタンを押すと userform2.showが実行されてユーザーフォーム2が開きますが、フォーム2にはテキスト ボックスなどが約400個程設置してあり、そのせいかフォーム2が開くのに約8~10秒程かかり ます。 そこでそのフォームを速く開きたいのですが、(1秒~2秒程で)どうしたら速く開くでしょうか? Application.DisplayFullScreen = Falseなどを使用しても余り効果がありません。 パソコン自体の処理速度もあると思いますが、できるだけ速くしたいです。 よろしくお願いします。

  • 【VBA】ユーザーフォームでvbYesNo

    VBA ユーザーフォームのコマンドボタンで「はい」「いいえ」を作成し、ダイアログボックスのvbYesNoと同等の事をしたいのですが、どうすればよろしいでしょうか? コマンドボタンを押すと「0」か「1」が返ってくるようにしたのですが、ユーザーフォームだけ表示され、回答を待たず次へ進んでしまいます。 ダイアログボックスのように選択の回答待ちのような状態にするにはどうすればよいかご教授おねがいします。

  • VBAでユーザーフォームを再表示させたい。

    ExcelのVBAでユーザーフォームを作成し、 Initializeイベントで初期化をし、コマンドボタンを クリックしたら処理を行うように作成しました。 ところがコマンドボタンによって処理を行った後、 再度Initializeイベントを呼びたいんです。。 (コンボボックスの表示を更新する処理を 含んでいるため) なんとかうまい方法はないでしょうか??

  • VBAでユーザーフォームのcaption表示

    VBAを初めたばかりです。 VBAでユーザーフォームを作成したのですが ユーザーフォームプロパティのcaptionで入力しても 下記プログラムで入力しても表示されません。 VBA作成時の画面にはしっかりと「項目」と 表示されていますが、プログラムを実行してユーザーフォームを 呼び出すと何も表示されていません。 ご教授ください。 Private Sub UserForm_Initialize() UserForm1.Caption = "項目" With ListBox1 .AddItem "1" .AddItem "2" End With End Sub

  • VBAでのユーザーフォームについて。

    初めまして。 今VBAのユーザーフォームでアンケートっぽいものつくってます。 最終的に結果ページをユーザーフォームにて表示させるのですが、 その結果ページのユーザーフォームを画像として保存したいのですが 方法がさっぱりわかりません。 (PrtScを押せばできるのですが処理で行いたいのです。。。) 以上よろしくお願いします。

専門家に質問してみよう