たぶん前の担当者が残したと思うんだけど、勤務先に使えるVBScriptファイルがあったのでメモ。
If WScript.Arguments.Count = 0 Then
MsgBox "Excelの非表示シートをまとめて表示するVBScriptです。" & _
vbCrLf & "ファイルをドロップして使用してください。", , "説明"
WScript.Quit
End If
On Error Resume Next
For Each myFName In WScript.Arguments
If LCase(Right(myFName, 3)) = "xls" Then
Set myXLS = CreateObject("Excel.Application")
myXLS.Visible = True
Set myBK = myXLS.Workbooks.Open(myFName)
For Each mySH In myBK.Sheets
mySH.Visible = True
Next
Set myBK = Nothing
Set myXLS = Nothing
End If
Next
If Err.Number <> 0 Then
MsgBox "ブックの保護を解除して試してください。", , "エラー"
End If
↑のコードをテキストにコピーしてデスクトップ等に保存すればOK。(拡張子は .vbs)使い方はカンタンで非表示シートがあるExcelファイルをドラッグ&ドロップすれば、シートが一括で再表示されます。
同じ動作のVBAサンプルは↓
' サンプル(1) '
Sub SheetVisibleSample1()
Dim xSh As Worksheet
For Each xSh In Worksheets
xSh.Visible = xlSheetVisible
Next
End Sub
' サンプル(2) '
Sub SheetVisibleSample2()
Dim i As Integer
For i = 1 To ThisWorkbook.Sheets.Count
Worksheets(i).Visible = xlSheetVisible
Next
End Sub
' サンプル(3) '
Sub SheetVisibleSample3()
Dim xSh As Worksheet
Dim xPass As String
On Error GoTo ErrorTrap
Call SheetVisibleSample1
ErrorTrap:
xPass = InputBox("ブック保護のパスワードを入力してください。", "確認", "")
ActiveWorkbook.Unprotect Password:=xPass
Call SheetVisibleSample1
End Sub
サンプル(1)と(2)はエラー処理をしていないので、ブックが保護されたファイルで実行すると、『実行時エラー '1004' :WorksheetクラスのVisibleプロパティを設定できません。』が発生します。
サンプル(3)は、エラートラップとしてパスワードの入力ダイアログを表示させています。ブック保護されていてもダイアログに正しいパスワードを入力すればシートを一括で再表示できます。ただ、入力ミスを繰り返すと、やはり『実行時エラー '1004'』が発生するので、もう少しエラー処理を考える必要がありますがこれくらいにして、Visibleプロパティに指定できる値をメモして今日は終了。
- xlSheetVisible(True):ワークシートを表示します。
- xlSheetHidden(False):ワークシートを非表示にします。メニューバーから再表示可。
- xlSheetVeryHidden:ワークシートを非表示にします。メニューバーから再表示不可。
"xlSheetHidden(False)"で非表示にしたシートはメニューバーから再表示できますが、"xlSheetVeryHidden"で非表示にしたシートは、メニューバーからは再表示できなくなるので、VBAで再表示させる必要があります。
0 件のコメント:
コメントを投稿