ExcelのMS5.0ダイアログシートの使い方と終了時の挙動について

このQ&Aのポイント
  • Excelの「MS5.0ダイアログ」を使ったシステムがあります。
  • 最終的には、ダイアログシート上でOKボタンを押してもシートが終了しないようにしたいです。
  • また、今後ダイアログシートで開発する際に参考になりそうな本・サイトを教えていただきたいです。
回答を見る
  • ベストアンサー

Excelの5.0ダイアログについて

いつもお世話になります。 過去質問を捜してみたのですが希望する回答がなかったため 質問させていただきます。 「まだ使ってるの?」と言われそうですが、 Excelの「MS5.0ダイアログ」を使ったシステムがあります。 10年以上動いているシステムなのですが、 この度、新規で機能の追加をする作業をしています。 ユーザフォームにしないのか?と聞いた所、 ダイアログシートで作ってくれ。といわれました。 開発環境はOSがXP、Excel2000です。 私自身は、 VBの経験は2年ほどあり、エクセルのマクロも触った事があります。 ユーザフォームを使っての開発もありますが、 ダイアログシートは今回初めて触る事になりました。 VBやユーザフォームを利用して組んでいた時には 出会わなかった文法に苦戦しております。 さて、前置きが長くなりました。 質問は ・ダイアログシート上に配置したOKボタンなどを押すと  勝手に終了してしまうのを防げないか。 というものです。 最終的にどう動かしたいのかと言いますと、 ---------------------------------------------------- 1・ダイアログシート上に配置したOKボタンを押す。 2・メッセージボックスを表示する。(OKボタンのみ) 3・OKボタンを押下するとメッセージボックスは閉じ、   シートはそのまま残っている。 ---------------------------------------------------- このようにしたいです。 現状では3の時にメッセージボックスと一緒にシートも終了していまいます。 可能ならばコレを阻止したいのですが方法はありますか? また、今後ダイアログシートで開発する際に参考になりそうな 本・サイトをご存知でしたら教えていただきたいです。 よろしくお願いいたします。

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

  • ベストアンサー
  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.1

「ダイアログシート」なんて触ったことも無いですし、 情報も見つからないので、『触ってみた「感想」』レベルです。 ボタンをマウス右クリックして「コントロールの書式設定」を表示し、 「コントロール」タブの「確認」とか「キャンセル」のチェックを外すと、自動的には閉じなくなるみたいですね。 でも、そうすると、じゃあどうやって閉じるんでしょう?? 「マクロの登録」の中で「ActiveSheet.Hide」を実行すると閉じてくれるようですが・・・ ほんと、こんなので良いのですかね???

関連するQ&A

  • エクセルとVBのマッチング

    エクセルのデータのマッチングでVBを使おうと思っていますが、苦しんでます。 エクセルのシート1に参照元になるデータを取得する(ID、氏名など6つの項目)。 VBのユーザーフォームで6つのテキストボックスを用意する。 ユーザーフォームに入力されたIDがシート1のIDと一致したら、ユーザーフォームのテキストボックスにID以外の項目をシート1から拾い出す。 登録ボタンを押すとIDを含めた6つの情報がシート2に移動する。 といった処理をVBで行いたいと思うのですが、どなたかご教授下さいませんでしょうか。 よろしくお願い致します。

  • 【VAB】 エクセルファイルからCSVファイルをインポートするには

    お世話になります 実行可能か、わからず質問させて頂きます。 ■概要 ・CSVファイルをエクセルファイルにインポートしたいです ■設置 ・ユーザーフォームにテキストボックス、参照ボタン、実行ボタン を生成 ■動き ・参照ボタンをクリックするとダイアログボックスでCSVを選ぶ ・選んだあて先がテキストボックスに記載される ・実行ボタンでCSVをエクセルのシートに貼り付け (このとき貼り付ける列はVB内で決めておきたい、1,4,5,6,9列を貼り付けるなど) わかる方ご教授よろしくお願い申し上げます

  • VBからExcel上の処理をするプログラムを作成しています。

    VB初心者です。 今、VBの画面からExcelを起動させて、一連の処理をした後、 またVBの画面に自動的に戻るようなプログラムを作成しようとしているのですが、 Excelのシートを削除する時に、ダイアログボックスが開いてしまい、そこで処理が止まってしまいます。 ダイアログボックスを開かないようにするとか、自動的にOKボタンを押したことにするとか、 何か方法があったら教えてください。

  • EXCELでラジオボタンなどを配置したシートに対して「シートの保護」を

    EXCELでラジオボタンなどを配置したシートに対して「シートの保護」をかけてもラジオボタンやコンボボックスは操作できてしまいます。ユーザフォームもロックしたいのですが、どうすれば良いでしょうか。

  • DLLから表示しているモーダルダイアログよりも手前にかつモーダルにフォーム表示したい

    VBからOCX経由でDLLを呼び出しており、そのDLLからモーダルダイアログ(以下ダイアログ(1)と記述)を表示しています。このダイアログ(1)を表示中にVBから別フォーム(2)をダイアログ(1)より前面に表示させています。 フォーム(2)をダイアログ(1)より前面に表示し、ダイアログ(1)をマウスクリック等しても表示順序が入れ替わらないようにするにはどうすれば良いでしょうか? OCXおよびDLLの変更はできません。 フォーム(2)の代わりにMSGBOX関数にてメッセージボックスを表示させた場合には、メッセージボックスを終了以前にダイアログ(1)の操作は不可となりました。 ですので、何らかの方法で実現可能だと考えています。 よろしくお願いいたします。

  • Excelのダイアログを閉じるプログラムは?

    現在Excelにて、コマンドボタンを押すとダイアログで 6つにグループ分けしたボタンを表示させ、 (たとえば野菜グループ、果物グループ、魚グループ、肉グループ... といった感じの6つのグループ) その6つのうちの一つ(たとえば果物グループ)を押すと、 果物のリストボックスが入ったダイアログが現れ、 そのリストから1つ(たとえばバナナ)を選択し、OKボタンを押すと 選んであったセルにバナナと入力されるというものです。 しかし、2つ目のリストボックスは、 リストから1つ選んでOKを押した時点で閉じるのですが、 1つ目のダイアログは6つのうちの1つを選択しても閉じず、 次のダイアログを起動させるプログラムしか組めていない為、 入力し終えたあと、自分で×(閉じる)ボタンを押して、 終了させなければなりません。 6つのうちの1つを選んで、次のダイアログを起動させた時点で 終了させるにはVBA(VBE?)にどう書き込めば良いのでしょうか? 2つ目に起動するリストボックスを表示させるダイアログの 閉じる為のプログラムと思われる箇所には 下記のように入力されています。 '確認ボタン(OKボタン)が押された場合の処理 If ListBox1.ListIndex > 0 Then ActiveCell.Value = ListBox1.List(ListBox1.ListIndex) なにぶん初心者なもので、全然分からないまま、 ネットの参考資料等を見ながらここまできましたが、 行き詰ってしまいお願いした次第です。 何卒、宜しくお願い致します。

  • ファイルダイアログでファイルをダブルクリックするとコントロールの位置が変わる

    WindowsXP、VB.NET2005で開発しています。 フォームにコントロールを配置し、 コントロール(ラベル・ピクチャーボックス)を動的に作成して マウスのドラッグにて移動できるようにしております。 問題となっているのは ContextMenu から実行する処理で ファイルダイアログを起動しているのですが、 そのファイルダイアログのファイルをダブルクリックして選択すると もとのコントロールの位置が変わってしまいます。 ファイルダイアログで行っている処理は選んだファイル名の格納だけなので、移動するのがなぜかわかりません。 OKボタンクリックでは移動しません。 画面上にラベルピクチャーボックスがある状態で 上記操作をすると、ピクチャーボックスが移動してしまいます。 移動しなくなるときもあるのですが、 法則がつかめておりません。 原因としてどういったことが考えられるでしょうか?

  • ユーザーフォームに入力したデータを保持する方法

    VBA初心者です。いろいろ調べて徐々に進められていますが、、 こちらもなかなか見つからなかったので質問させていただきます。 現在、ユーザーフォームにテキストボックスをいくつか配置し、 さまざまな計算などをさせて、最終的にエクセルシートに反映させる。 といったことが出来るようにプログラムをしています。 ユーザーフォームのテキストボックスに一度入力したものを、 エクセルシートを閉じるまで残すことはできるでしょうか? 一度、×ボタンで閉じてしまうと、次に呼び出したときには初期の状態になってしまいます。 ユーザーフォームに入力し、エクセルシートで確認、 その後 再度ユーザーフォーム呼び出して修正する といった作業をするために、一度入力したものが消えないようにしたいです。 よろしくお願いいたします。

  • エクセル2007で MS Excel5.0ダイアログは使用できますか?

    来春にはエクセル2007が発売されるようですが、それで心配事があります。 既存のエクセルのブックには、過去からの流れで、ユーザーフォームではなく、「MS Excel5.0ダイアログ」のダイアログシートを使用しているものが大量にあります。 これがもし使用できなくなると大変なんです。どなたかご存知の方いらっしゃいませんでしょうか?

  • エクセル97でのユーザーフォームについて

    エクセル97でのユーザーフォームについて教えて下さい (1) まず最初にユーザフォームを作成しました。 (2) エクセルオープン時にメニューバーにボタンを追加し、そのボタンを押すと   ユーザーフォームが表示されてくるという風に考えました。 ユーザーフォームは表示されるのですが、フォームに配置されているボタン等を 押してもまったく利きません(本来はメッセージが表示される) アクティブにはなっているようなのですが... Private Sub UserForm_Activate() End Sub 上のアクティブになった時に何か処理をもりこまなければいけないのでしょうか? 初歩的な質問で申し訳ないのですが、宜しくお願い致します。

専門家に質問してみよう