Excel VBA質問箱 IV

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

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


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

【7832】マクロを自動で有効とする方法。 yama 03/9/19(金) 13:54 質問
【7834】Re:マクロを自動で有効とする方法。 Jaka 03/9/19(金) 14:35 回答
【7835】Re:マクロを自動で有効とする方法。 Jaka 03/9/19(金) 14:41 回答
【7836】Re:マクロを自動で有効とする方法。 yama 03/9/19(金) 15:03 お礼
【7838】Re:マクロを自動で有効とする方法。 INA 03/9/19(金) 16:41 回答
【7840】Re:マクロを自動で有効とする方法。 yama 03/9/19(金) 19:52 お礼

【7832】マクロを自動で有効とする方法。
質問  yama  - 03/9/19(金) 13:54 -

引用なし
パスワード
     マクロ初心者です。
BOOKをOPEN時に自動でマクロを有効としたいのですが
どうもうまくいきません。
ユーザーにマクロを無効とさせないのが本来の狙いです。

どなたかよい方法があれば教えてください。
EXCELのバージョンは2002です。

宜しくお願いします。

【7834】Re:マクロを自動で有効とする方法。
回答  Jaka  - 03/9/19(金) 14:35 -

引用なし
パスワード
   こんにちは。
シートを1枚追加して、シート名に「ダミーシート」としてください。
パスワード設定用なんで、余計な物は消してください。
だいぶ前のなんで良く覚えていませんが、2回目から有効だったような?

標準モジュール
Sub Auto_open()
  暗証番号 = Application.InputBox(Prompt:="暗証番号を入力してください。。", _
            Title:="暗証番号入力")
  If 暗証番号 <> "111" Then
    MsgBox "暗証番号が違います。暗証番号は、「111」"
    ThisWorkbook.Close
  Else
    ThisWorkbook.Worksheets("ダミーシート").Unprotect Password:="111"
    ThisWorkbook.Unprotect Password:="111"
    For i = 1 To 3
    Worksheets("Sheet" & i).Visible = True
    Next
  End If
End Sub

Thisworkbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  ThisWorkbook.Unprotect Password:="111"
  For i = 1 To Worksheets.Count
    If Sheets(i).Name <> "ダミーシート" Then
      Worksheets("Sheet" & i).Visible = False
    End If
  Next
  ThisWorkbook.Sheets("ダミーシート").Protect
  ThisWorkbook.Protect Password:="111", Structure:=True, Windows:=True
  ThisWorkbook.Save
  ThisWorkbook.Close (True)
End Sub

【7835】Re:マクロを自動で有効とする方法。
回答  Jaka  - 03/9/19(金) 14:41 -

引用なし
パスワード
   説明を忘れていました。

要するにマクロを無効にして開くと、使えないブックにしようって事です。

【7836】Re:マクロを自動で有効とする方法。
お礼  yama  - 03/9/19(金) 15:03 -

引用なし
パスワード
   ▼Jaka さん:
>説明を忘れていました。
>
>要するにマクロを無効にして開くと、使えないブックにしようって事です。

なるほど!!!!
Jakaさんの発想が思いつきませんでした。

Jakaさんの方法でできそうです。
ありがとうございました。

【7838】Re:マクロを自動で有効とする方法。
回答  INA  - 03/9/19(金) 16:41 -

引用なし
パスワード
   もう要らないかもしれませんが、
マクロ無効にするとSheet1以外を非表示にするサンプルです。
(一度ブックを閉じて開いて下さい。)

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Dim i As Worksheet
  For Each i In Sheets
    If Not i.Name = "Sheet1" Then
      i.Visible = xlSheetVeryHidden
    End If
  Next i  
  Me.Save
End Sub

Private Sub Workbook_Open()
  Dim i As Worksheet
  For Each i In Me.Worksheets
    i.Visible = xlSheetVisible
  Next i
End Sub

【7840】Re:マクロを自動で有効とする方法。
お礼  yama  - 03/9/19(金) 19:52 -

引用なし
パスワード
   ▼INA さん:
>もう要らないかもしれませんが、
>マクロ無効にするとSheet1以外を非表示にするサンプルです。
>(一度ブックを閉じて開いて下さい。)
>
>Private Sub Workbook_BeforeClose(Cancel As Boolean)
>  Dim i As Worksheet
>  For Each i In Sheets
>    If Not i.Name = "Sheet1" Then
>      i.Visible = xlSheetVeryHidden
>    End If
>  Next i  
>  Me.Save
>End Sub
>
>Private Sub Workbook_Open()
>  Dim i As Worksheet
>  For Each i In Me.Worksheets
>    i.Visible = xlSheetVisible
>  Next i
>End Sub

INAさん
こんにちは。

INAさんの方法でもいけそうですね。
サンプルありがとうございました。

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