- ベストアンサー
Excel VBA「Application.DisplayAlerts」について
- Excel VBAの「Application.DisplayAlerts」を使用すると、確認画面を出さずに処理をすることができます。
- ただし、デフォルトのボタンが押された状態で処理が進められるため、任意のボタンを押した状態で処理を進めさせる方法を知りたいです。
- Application.DisplayAlertsを使わない他の方法でもかまいません。ご教授いただけると幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
開くときに確認ダイアログが出るのは「読み取り専用」ではなく「読み取り専用推奨」だと思いますがそれはさておき。 #「読み取り専用」なら選択出ません http://msdn.microsoft.com/ja-jp/library/microsoft.office.interop.excel.workbooks.open(VS.80).aspx にあるとおりOpenメソッドでReadOnlyパラメータをFalseに設定してやればいいような。 ついでに、このダイアログを出さないだけならApplication.DisplayAlertsではなくWorkbooks.OpenでIgnoreReadOnlyRecommendedをTrueにすればよさそうです。
その他の回答 (1)
- hana-hana3
- ベストアンサー率31% (4940/15541)
Application.DisplayAlerts 使わない場合は、コードで任意の処理をする事になります。 1.処理の前にチェック 2.エラートラップを使って、任意のエラー対策を行う。 という方法になります。 1は、保存ファイル名の重複(同一ファイル名)の事前チェック等。 2は、on error goto 等でエラー番号をチェックして任意の処理。 具体的な処理内容が不明なので、一般的な回答になります。
補足
ご回答ありがとうございます。 ただ、回答の意味が良くわかりませんでした。 補足しますと・・・ XXXXXXXXの処理部分を含めると、現在、以下のようなコードになっています。 Application.DisplayAlerts = False Workbooks.Open ○○○.xls Application.DisplayAlerts = True ○○○.xlsに読み取り専用がかけられているため、 Application.DisplayAlerts を使わずに実行すると、 以下のメッセージダイアログが出ます。 --- '○○○.xls'を変更し、保存する必要がなければ、読み取り専用で開いてください。読み取り専用で開きますか? [はい(Y)] [いいえ(N)] [キャンセル] --- メッセージダイアログを出さないように、Application.DisplayAlerts を指定して動作させると、 [はい(Y)]ボタンにデフォルトフォーカスされているためか、読み取り専用で開いてしまいます。 これを、メッセージダイアログを出さずに、[いいえ(N)]ボタンを押したときと同じ状態で、 つまり、読み取り専用ではなく開きたいのです。
お礼
Workbooks.Open ○○○.xls, IgnoreReadOnlyRecommended:=True だけで、無事に通常モードで開くことができました。 あとは、ブック共有になっているので、これを解除できれば、処理を進めることができます。 どうもご回答ありがとうございました!