|
例3
シートの保護という機能がありますよね?
この機能、Excel2000と2002では、大きく仕様が変っていますよね?
Excel2002からは、保護する内容が細かく指定できるようになっています。
よって、Protectメソッドのオプションも2002から、増えています。
新規ブックにて、
標準モジュールに
Sub test5()
Dim sht As Worksheet
Set sht = ActiveSheet
If Application.Version = "9.0" Then
sht.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Else
sht.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True
End If
End Sub
このtest5をExcel2000で実行すると、
sht.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True
↑ここがコンパイルエラーになります。
が、
Sub test5()
Dim sht As Worksheet
Set sht = ActiveSheet
If Application.Version = "9.0" Then
sht.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Else
'sht.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True コメント化しておくこと
End If
End Sub
Sub test6()
Dim sht As Object
Set sht = ActiveSheet
If Application.Version = "9.0" Then
sht.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Else
sht.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True
End If
End Sub
test6を実行すると、コンパイルエラーにはならず、
正常にシートが保護されます。
(因みにExcel2002では、どちらも正常に作動します)
これらの例から見ると、Object型変数を使った操作でいけそうですが・・・。
ちょっと前に目安箱に
www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=247;id=FAQ
こんな投稿したことがありました
(あらっ、ちょっと前って一年も前ジャン)。
関連性があるので確認してみてください。
以上です。
|
|