• 締切済み

マクロ:読みとり専用の場合、一部シートを隠す

エクセルを開くと、パスワードを入力OR読み取り専用の小窓を出します。 パスワードを入力すると、エクセルを操作でき、 読み取り専用の場合は一部シート、たとえば2シート目以降は隠す、というふうにマクロでできないでしょうか。 読み取り専用等の設定はできるのですが、 特定のシートを隠す設定が、毎回手間がかかるため、マクロにしようと思った次第です。 IFを使ってマクロを組もうとしたのですが、 つなげ方がよくわからず、ご教示頂きたいです。 よろしくお願いします。 ファイル名:#### Sub OpenWorkbook(エクセル1)  WorlBooks.Opne FikeName:="####",PassWord:="ABCDE"  WorkBooks.Open FileName:="#####",ReadOnly:=True Worksheets("Sheet2").Visible = False End Sub

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>パスワードを入力OR読み取り専用の小窓を出します。 特にマクロを使うまでも無く、エクセルの一般機能で「書き込みパスワード」を設定しておきます。 #名前を付けて保存ダイアログのツール▼から全般オプション >読み取り専用の場合は一部シート、たとえば2シート目以降は隠す エクセルの一般機能で、パスワードを入れれば通常で開き、入れなければ読み取り専用で開いたところからマクロの出番にします。 対象のブックのThisWorkbookシートに: private sub workBook_Open()  dim i as long  for i = 2 to worksheets.count  worksheets(i).visible = not (thisworkbook.readonly)  next i end sub ただし言わずもがなですが、「マクロを有効」で開かないと、マクロに何かをさせることは当然できません。