Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2898 / 13646 ツリー ←次へ | 前へ→

【65358】シートを前面に表示したい あや 10/5/14(金) 16:24 質問[未読]
【65362】Re:シートを前面に表示したい よろずや 10/5/14(金) 18:39 回答[未読]
【65367】Re:シートを前面に表示したい teian 10/5/14(金) 21:53 発言[未読]
【65379】Re:シートを前面に表示したい あや 10/5/17(月) 8:44 お礼[未読]
【65392】Re:シートを前面に表示したい teian 10/5/17(月) 22:51 発言[未読]

【65358】シートを前面に表示したい
質問  あや  - 10/5/14(金) 16:24 -

引用なし
パスワード
   ファイルを開くと同時に、
「タイトル」というシートを前面に表示させたいのです。

ちなみに、シートは「タイトル」以外に
30シートほどあります。

---- 考えた事 -----
ThisWorkbookに↓のマクロを作りました。

 Private Sub Workbook_Open()

   Application.DisplayAlerts = False
   Sheets("タイトル").Activate
   Application.DisplayAlerts = True

 End Sub

しかしこれだと、一瞬別のシートが表示されてから
(DisplayAlertsを使っていますが、一瞬別シートでOpenしてからになります)
タイトルシートが表示されます。
使う人によっては、この一瞬が不快だそうです…


回避策として、考えたのが
前回の終了のタイミングで、タイトルシートを前面に表示し
上書き保存をして終了させる↓を、ThisWorkbookに記述。
(終了のタイミングで、タイトル画面が出る分には問題ないかと)

 Private Sub Workbook_Beforeclose(Cancel As Boolean)

   Sheets("タイトル").Activate

   Application.DisplayAlerts = False
   ActiveWorkbook.Save
    Application.DisplayAlerts = True

 End Sub

そして、ここで問題が…
終了をすると必ず上書き保存が走ってしまうということ。
考えられるトラブルとしては、
1.自分で上書き保存をする(ファイル-上書き保存 や アイコンの上書き保存にて)
2.編集をする
3.編集した分を保存せずに、終了したい
4.右上の×を押す
とすると、上書き保存が走ってしまいます。

---------------------

回避方法もしくは、根本解決方法がありましたら教えて下さい。

また週明けに確認をさせていただきたいと思います。
よろしくおねがいします。

【65362】Re:シートを前面に表示したい
回答  よろずや  - 10/5/14(金) 18:39 -

引用なし
パスワード
   ▼あや さん:
>回避方法もしくは、根本解決方法がありましたら教えて下さい。

Workbook_Beforeclose
ではなく
Workbook_BeforeSave
を使いましょう。

【65367】Re:シートを前面に表示したい
発言  teian  - 10/5/14(金) 21:53 -

引用なし
パスワード
   DisplayAlerts=False/True
で挟む意図はなんなでしょう?
特に、Workbook_Openの方は意図が分かりません。
どうせ今次の対応により、多分こちらのプロシージャは不要になるのでしょうが、
参考までに、
ActiveWorkbook.Saveの方もなぜ挟んで、
Excelから発信される警告を無視するようにしたのかを教えてほしいなと思いました。

すでにアドバイスのあったBeforeSaveイベントプロシージャの方での対応になれば、
こちらも保存という命令は不要になりますので、
多分、上記の心配は余計なお世話になるのですが、
興味本位でお聞きしてます。

【65379】Re:シートを前面に表示したい
お礼  あや  - 10/5/17(月) 8:44 -

引用なし
パスワード
   Workbook_BeforeSave を使うようにします。

ありがとうございます^^


Application.DisplayAlerts を使うのは、
警告を出したくないからです…

【65392】Re:シートを前面に表示したい
発言  teian  - 10/5/17(月) 22:51 -

引用なし
パスワード
   ▼あや さん:
>Application.DisplayAlerts を使うのは、
>警告を出したくないからです…
それは、承知してます。
それぞれ、どんな警告を無視しようとしたのかに興味があったんです。

2898 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free