こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBAでブックを開くとマクロを実行するようにしたいのですが

ブックを開くと同時に開いたシートを保護するようにしたいのですがうまくいきません。通常(?)ボタンを作っておいて押すと実行すると思うのですが、そうせずにブックを開くと実行するようにならないかと思っています。保護をするコードはわかるのですが、どこにそれを書き込んだらいいのかもわかりません。VBAプロジェクトを見るとSheet1,Sheet2,ThisWorkbook,UserForm1とありますが、そのうちのどこかに置くのでしょうか?

投稿日時 - 2005-10-29 21:12:37

QNo.1744198

すぐに回答ほしいです

質問者が選んだベストアンサー

ThisWorkbookをWクリック

(General)をクリック

Workbookを選択

Private Sub Workbook_Open()
'ここに記述
End Sub

ブックを上書き保存して閉じる

これで次回起動時からマクロが
自動で実行されます。

あるいは、
挿入

標準モジュール

ウィンドウ内に
Sub Auto_Open
'記述
End Sub

ブックを上書き保存して閉じる

以下同じです。

投稿日時 - 2005-10-29 21:30:35

お礼

marbinさんありがとうございます。早速試してみました。最初からブックを開きやってみました。一回目はうまく保護できました。もう一度試そうとしたところ保護できませんでした。見てみるとGeneralに戻ってしまっていました。それでまたWorkbookに戻してみて試しましたが、それからはうまく動作しなくなりました。どうしてでしょうか?

投稿日時 - 2005-10-29 22:19:01

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

こんばんは。

>ブックを開くと同時に開いたシートを保護するようにしたいのですがうまくいきません。
&
>一回目はうまく保護できました。もう一度試そうとしたところ保護できませんでした。見てみるとGeneralに戻ってしまっていました。

ブックを開いてシートを保護する、というコードには、論理矛盾があるようですね。

例:
'<ThisWorkbook モジュール>
Private Sub Workbook_Open()
  With Me.Worksheets("sheet1")
   .Protect Password:="abc"
  End With
End Sub

うまくいかないようでしたら、コードを公開してください。

投稿日時 - 2005-10-29 22:32:20

お礼

ご回答ありがとうございました。すみません、勘違いをしてました。よくよくセルに文字をシートから直接記入しようとしたところちゃんと保護されていました。おっちょこちょいで済みません。。。

投稿日時 - 2005-10-29 23:10:26

あなたにオススメの質問