- 締切済み
Excelのバージョンの違いで VBA の実行エラー
エクセル2003で、 VBAを使い、行を非表示にする ドグルボタンを作成し、 シート保護をし、行の書式だけ編集可能にし保護しました。 Range("63:67").EntireRow.Hidden = True Selection.EntireRow.Hidden = False というのを使用しました。 つまり、ドグルボタンで、列の表示と非表示をできるように しました。 しかしながら、あるユーザから、 ドグルボタンを押すと"実行エラー 1004"が表示される。 Range クラスのHidden プロバティを設定できません。 と表示されると報告がありました。 まるで、シート保護時に、列の書式にチェックをしなかった ような症状です。 よく聞いてみると そのユーザはExcel2000のユーザでした。 Excelのバージョンの違いによって生じたエラーなのでしょうか? わかる人教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 >VBAを使い、行を非表示にする ドグル(トグル)ボタンを作成し、 >シート保護をし、行の書式だけ編集可能にし保護しました。 行の書式だけ編集可能にする、という、その設計自体を、もう一度考え直したほうがよいかもしれませんね。時々、下位バージョンで逆の方--書式を保護したい--という方はいらっしゃいます。 値は保護しても、書式は保護しないということでしょうか? せっかく、マクロでするなら、その辺り自体をイベント・ドリブン型にしてしまい、書式は、値によって反応させてもよいと思います。なお、プロテクトは、UserInterfaceonly:=True にしても良いかと思います。
- merlionXX
- ベストアンサー率48% (1930/4007)
Excel2000では、行の書式だけ編集可能にして保護するという機能はありません。そのため実行時エラーになります。 2000も対象にするなら、行の操作時にマクロで一旦保護を解除して、また保護をかけるようにする必要がありますね。
補足
ありがとうございます。 問題が解決しました。 早い回答感謝します。