Excel VBA 質問スレッド №2133 (未解決)

Bookを開いたとき入力シートを表示させたい

投稿者 : 竹庵     投稿日時 : 2025/07/01(Tue) 23:00:42     OS : Windows 11     EXCEL : Office 365
入力シート、総合シート、群馬シート,栃木シートがあります。

やりたいこと:Bookを開いたとき、総合シートのD15とG15とH15をクリアーした後、入力シートを表示したい。

次のようなコードを作ってみました。

Private Sub Workbook_Open()

Sheets("総合").Activate

Worksheets("総合").Unprotect Password:=""
 ActiveSheet.Unprotect

Sheets("総合").activate

Worksheets("総合")Range("G15:H15").ClearContents
Worksheets("総合").Range("D15").ClearContents

Worksheets("総合").Protect Password:=""
  ActiveSheet.Protect

Sheets("入力").Activate

End Sub

総合シートを表示させておいて保存し再度BOOkを開くと,総合シートのG15,H15,D15のデータはクリアーされ入力シートが表示されるんですが、群馬シートや栃木シートが表示されているとき保存しBookを閉じたあと、再度Bookを開くと総合シートが表示されデータがクリアーされず入力シートが表示されません。
どなたか、教えていただけませんでしょうか

スポンサーリンク
[返信 1] Re : Bookを開いたとき入力シートを表示させたい
投稿者 : てらてら     投稿日時 : 2025/07/02(Wed) 06:20:14
こんにちは。

試したところ、ちゃんとデータがクリアされて入力シートが表示されました。

他の問題が絡んでいるかもしれないので、2行目あたりに Stop と記述して、
起動後止まったら、F8キーでステップ実行してみてはいかがでしょうか?

[返信 2] Re : Bookを開いたとき入力シートを表示させたい
投稿者 : 竹庵     投稿日時 : 2025/07/02(Wed) 12:14:48
ありがとうございました。

[返信 3] Re : Bookを開いたとき入力シートを表示させたい
投稿者 : higeru     投稿日時 : 2025/07/03(Thu) 08:28:22
 そのコードだけを見る限りでは

> 総合シートが表示されデータがクリアーされず入力シートが表示されません

のような不可解なことは起こり得ませんね。Workbook_Open 以外のイベントプロシージャが影響しているくらいしか思い付きません。

 ちなみにそのコードですが、冗長というか無駄な記述が多いです。以下でよいです。

Private Sub Workbook_Open()
    Worksheets("総合").Unprotect
    Worksheets("総合").Range("D15,G15:H15").ClearContents
    Worksheets("総合").Protect
    Worksheets("入力").Activate
End Sub

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2025-07-04 14:11:25 )
タイトルとURLをコピーしました