プロが教える店舗&オフィスのセキュリティ対策術

マクロに関する質問です。
会社で使うエクセルファイルを作成しており、誤作動わ無くすためマクロを有効にしてから使えるようにコードを書いています。
どういうことかというとマクロを有効にしたらダミーである空白のシートが非表示になり、記入用シートが表示されるようにするつもりです。
ですが実行しようとすると「実行時エラー32809」が出てエラーになります。
コードは下記の通りです。this work bookに記載しています。

Private Sub Workbook_Open()
With Worksheets("記入用")
.Visible = True
.Activate
End With
Worksheets("ダミー").Visible = False
End sub

ちなみにシート名を(1)や(2)にすればエラー発生せず動作はしますが、どのシートも表示非表示されず何も変わりません。
何が原因なんでしょうか?どうすれば改善できるでしょうか?
回答よろしくお願いいたします。

A 回答 (1件)

>マクロを有効にしたらダミーである空白のシートが非表示になり、記入用シートが表示されるようにするつもりです。



マクロを有効しない場合、ダミー・シートが出るというロジックが抜けています。
マクロなしで、内部のマクロを動かすことは不可能です。

ただ、以下のマクロは、何度も確認していますが、残念ながら、うまくいかないとおっしゃってくる人がいます。それは、設定上の問題です。
原因は、オプション・セキュリティセンターの設定の「信頼できる場所」においている限りは、マクロを拒否することはできませんから、設定のない場所で起動していただくしか判別できないです。
それから、ダミーと記入用の切り替わりは、一瞬見えてしまうようです。


'//ThisWorkbook モジュール
Private Sub Workbook_BeforeClose(Cancel As Boolean)
 If Me.Saved Then Exit Sub
 Select Case MsgBox(Me.Name & " の変更を保存しましすか?", vbExclamation + vbYesNoCancel)
  Case vbYes
   Application.ScreenUpdating = False
   Me.Worksheets("記入用").Visible = False
   Me.Worksheets("ダミー").Visible = True
   Me.Worksheets("ダミー").Select
   Application.EnableEvents = False
   Me.Save
   Application.EnableEvents = True
   Application.ScreenUpdating = True
  Case vbNo
   Me.Saved = True
  Case vbCancel
   Cancel = True
 End Select
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
 With Me
  Application.ScreenUpdating = False
  .Worksheets("記入用").Visible = False
  .Worksheets("ダミー").Visible = True
  .Worksheets("ダミー").Select
  Application.ScreenUpdating = True
  Application.EnableEvents = False
  Me.Save
  Application.EnableEvents = True
 End With
 Cancel = True
 Me.Saved = True
End Sub

Private Sub Workbook_Open()
 With Me
  Application.ScreenUpdating = False
  .Worksheets("記入用").Visible = True
  .Worksheets("ダミー").Visible = False
  .Worksheets("記入用").Select
  Application.ScreenUpdating = True
 End With
End Sub
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!