• ベストアンサー

エクセルのマクロでwindowsのメッセージを表示させない方法

マクロである範囲をコピーして、別の所に貼り付ける処理をしているのですが 下記メッセージがでるため一時処理が中断してしまいます。 処理が中断しないようにこのメッセージを表示させたくないのですがどうすればよいのでしょうか。 クリップボードに大きな情報があります。この情報をほかのプログラムに貼り付けられるようにしますか? ・後で貼り付けるためにクリップボードに保存する場合は、[はい]をクリックします。 ・クリップボードにある情報を削除する場合は、[いいえ]をクリックします。 このメッセージが出るたびに[いいえ]をクリックしているのですが、マクロを使用してメッセージを確認しないで[いいえ]をクリックしたことにする方法を教えてください。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.4

閉じる前に微小な範囲、例えばA1セルをコピーしたらどうでしょう。

oka-hiro
質問者

お礼

回答いただいたことを早速試してみましたらうまく行きました。 本当に有難うございました。 「閉じる前に微小な範囲、例えばA1セルをコピー」は目から鱗のような感じです。 こらからもnishi6さんを見習って勉強してゆきたいと思っています。 今後ともどうかよろしくお願いいたします。

その他の回答 (3)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

No.1の者です。 元ファイルを閉じる時に現れるのであれば、 次の1行を閉じる前に入れてみてください。 Application.CommandBars("Clipboard").Controls(4).Execute これは、クリップボードの中身をクリアする操作です。 先にクリップボードの中身を削除してしまえばいいような気がするのですが。 多分確認メッセージも出ないとは思いますが、念のためDisplayAlertsの操作も入れといた方がいいかも知れません。

oka-hiro
質問者

補足

回答していただいて感謝します。 Application.CommandBars("Clipboard").Controls(4).Execute の操作を追加したのですが、 実行時エラー 'Execute’メソッドは失敗しました:’commandbarbutton ’オブジェクト とエラーになります。 お教えいただいたVBにも興味がありますので、もう少し詳しくご教授いただければ幸いです。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

ダメかもしれませんが、 Application.DisplayAlerts = False をマクロの最初に挿入して試してみてください。 質問のようなメッセージを出せない(私のPCでは余り見たことがない・・・)ので確認できませんが。ダメだったらすいません。

oka-hiro
質問者

補足

Application.DisplayAlerts = False では どうやら[はい]をクリックした状態になっているみたいで、データ量が多すぎるせいか、非常に時間がかかり止まっているようにも見えます。 (この時「タスクマネージャ」で確認したら「応答なし」となっています。) マウスで[いいえ]をクリックしたときは数分で処理が終了するのですが... このメッセージはクリップボードに取り込んだデータの元のファイルを閉じようとした時に現れるようです。 現在、行っている処理はエクセル上でデータを検索するもので ・検索用のファイルを開く。 (以下マクロで処理) ・CSVファイルをテキストファイルに直してからエクセルで開く。 ・開いたデータ(約3万行)を全てコピー。 ・検索用のファイルに貼り付ける。 ・テキストファイルを閉じる。 エクセルでは無理のある処理をしているのは承知していますが、[はい]ではなくて[いいえ]をクリックしたことにしたいので、宜しくお願いいたします。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

DisplayAlertsプロパティをFalseに設定すると、さまざまな確認・警告メッセージを非表示に出来ます。 記述してあるプロシージャの実行が終了すると、自動的にTrueに戻るようですが、念のため明示的にTrueを設定しておきましょう。 なお、マクロウィルスの警告メッセージは非表示には出来ません。 (例) Sub プロシージャ名 Application.DisplayAlerts = False ------ 処理内容 -------- Application.DisplayAlerts = True End Sub

oka-hiro
質問者

補足

回答有り難うございます。 No.2のnishi6さんの所に書いたような状況です。 お手数をかけます。

関連するQ&A