• 締切済み

エクセルVBA シートの保護について

EXCEL2003 OS:XP お世話になります。 エクセルVBAを使い、列の表示・非表示の機能を使えないように制限をかけたいと思います。 シートの保護であるPROTECTメソッドを使うとできるようですが、 これだと列幅の調整もできなくなってしまいます。 AllowFormattingRows = false 列幅の調整は可能なままとして、列の表示・非表示のみ使えなくするような制限は可能でしょうか? 宜しくお願い致します。

みんなの回答

  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.1

>列幅の調整は可能なままとして、列の表示・非表示のみ使えなくするような制限は可能でしょうか? できないように思う。 列幅を0にされたら列の非表示と一緒だし 以下独り言 うーーん、VBAで何とか 列の表示、非表示を変えたら間髪をいれずにもとに戻す! ここを捕まえるイベントないかな Worksheet_SelectionChangeでtargetが列を選択したときにその列を覚えておいて 次の選択時にその列がhiddenかどうかをチェックしてhiddenだったらもとに戻す。 またはすべての列の表示非表示を配列に覚えておいて、selection_changeのたびにもとに戻す。 仕様とは違うけど表示非表示がセルを移動するだけでもとに戻るから問題ないかな

tochou4848
質問者

お礼

回答おそくなってすいません。。 やっぱり簡単にはできないのですね、、VBAでできるとこまでやってみます。 ありがとうございました。

関連するQ&A