• ベストアンサー

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

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

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

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

Application オブジェクトに DisplayAlerts プロパティというのがあります。 これに False を設定すると、確認のダイアログを出さなくなります。 例えば、こんな感じ。 Application.DisplayAlerts = False Sheets("Sheet1").Delete まあ、間違いがあるといけないので、デバッグが完了するまでは、すぐ元に戻して おいた方が『吉』か、と。

その他の回答 (1)

noname#3564
noname#3564
回答No.1

ExcelのApplicationオブジェクトのプロパティ"DisplayAlerts"をFalseにすればメッセージボックスは表示されなくなると思います。

関連するQ&A

  • VBからエクセルファイル作成

    VBでエクセルファイルを作成する処理を作っていて、ファイルは作成されるのですが、自動的にシートが3シート作られます。 作成時にシート数を指定することはできるのでしょうか? ネットでいろいろ調べるのですが、VBからのエクセル操作について書かれているサイトがあまりみつかりません。 よいサイトがありましたら、あわせて教えてください。 よろしくお願いします。

  • EXCEL VBAから、VBのフォームを開くためには?

    EXCEL VBAからVBへプログラムを移そうと努力しています。 そこで、エクセルのシートのコマンドボタンを押すと、 VBで作成したフォームが開き、そこからEXCELの処理を させたいと考えています。 VBからエクセルの処理は Excel.Application のあたりをつかうことでなんとかなりそうなんですが その逆がわからず行き詰まっています。 EXCELは2000 VBは6.0 です ご存じの方、よろしくお願いします。

  • 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) なにぶん初心者なもので、全然分からないまま、 ネットの参考資料等を見ながらここまできましたが、 行き詰ってしまいお願いした次第です。 何卒、宜しくお願い致します。

  • エクセル上でVB6を使っています。

    エクセル上でVB6を使っています。 時間のかかる計算をしている最中は、 小さいウィンドウを画面中央に出して、処理中であることを知らせたいです。 MsgBox ("計算中です。")と入れるとOKボタンが表示されます。 これだとOKを押されて、メッセージが消えるので、良くありません。 OKボタンを非表示にして、計算が終わったらメッセージを消すことは出来ませんでしょうか?

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

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

  • EXCELでのVBについて

    EXCELでVBのプログラムを作成していますが、2点ほどわからないことがありまして困っています。 1.EXCEL等でデータを保存するとき、同じファイルがあれば、上書き確認のメッセージボックスが出ます。VBのOpen文で保存 するとき、このメッッセージボックスを出したい。 2.コマンドボタンの機能をファンクションキー(たとえばF1)に割り付けたい。 以上、2点について、よろしくご教示ください。

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

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

  • ※VBで次のようなテキストファイル作成プログラムはできるでしょうか?

    ※VBで次のようなテキストファイル作成プログラムはできるでしょうか? VB初心者です。VBで添付ファイル「画面1」のような横一列のテキストファイルを作成しようとしているのですが、なかなかうまくいきません・・・。 各データの間のスペースは添付ファイルのようなタブ構成になっています。 赤線のように固定されたデータと青線のように変動するデータとになっています。 「画面2」のような入力画面を作成し、入力して「OK」ボタンを押したら「画面1」のデータが作成されるようにしたいのですが、どのようにプログラミングしたらよいか少々パニック気味です。 よろしくお願いいたします。 (追記)「画面2」の入力画面に「OK」ボタンを付けるのを忘れました。 【添付ファイルが見難い場合は↓をクリックしてください】 http://proxy.f3.ymdb.yahoofs.jp/users/471e8dff_15ad9/bc/5143/__hr_/e89d.jpg?bch6daMBDu0bgZv8

  • VB6.0同一プログラム上で複数のExcelファイルの編集をしたいのですが…

    目にとめていただき有難うございます。 VBについては初心者です。宜しくお願い致します。 VB6.0で、フォーム上で指定した2つのExcelファイルについて、それぞれ特定の行・列を削除してCSVとして保存、そのデータを使って処理を行うプログラムを作成しようとしています。 同じVB6.0のプログラム上で、複数のExcelファイルに対して編集をかけることは可能でしょうか。 プログラムの流れとしては (1)エクセルオブジェクトの新しいインスタンスを作成 (2)エクセルファイル1を開き、特定行を削除する (3)エクセルファイル1をCSVとして保存、閉じる (4)オブジェクトを解放する (5)エクセルオブジェクトの新しいインスタンスを作成 (6)エクセルファイル2を開き、特定行を削除する (7)エクセルファイル2をCSVとして保存する (8)オブジェクトを解放する というものです。 (1)~(4)と(5)~(8)は同じSubプロシージャでファイルのパスだけ変えるようにしています。 (1)~(5)迄は素直に行くのですが、(6)の削除行を指定する段階で ‘Rows’メソッドは失敗しました’_Global’オブジェクト と出てしまう状態です。 (1)~(4)は問題なく動き、ファイル1の編集もきちんと出来ているため、混乱しております。 同じコードでパスだけ変えてやろうという考えが無理な話なのか、コードの組み方が悪いのか… 質問で不明瞭点があれば説明させて頂きますのでご指摘下さい。 宜しくお願い致します。 #ソースまで出した方が良かったのでしょうか…

  • VB2008 でプログラムを作成している初心者です。

    VB2008 でプログラムを作成している初心者です。 順調に製作&デバッグしながら進めていたプログラムで、突然デバッグしても、作成中のアプリケーションが現れなくなりました。VB開発環境には”プログラム実行中”と表示があり動いているようですが、アプリ画面が出ていないので、そこへの入力も何も、画面確認もできません。何か、設定があるのでしょうか? ちなみに、binやdebugフォルダーのwindowsApplication1.exeをクリックすると、画面が出てきて動作します。 初歩的な問題だとは思いますが大変困っています。 どなたかお分かりになる方、ご教授ください。 よろしくお願いします。

専門家に質問してみよう