[[20090317220310]] 『シート保護とフィルタの両立?』(T.K) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『シート保護とフィルタの両立?』(T.K)
 OS:XP
 excel:2000
 いつもお世話になっております。またまた、土壷に嵌って困っています。
出納簿を作っております。どうやっても数式が入っているとセルに電卓で
計算して数字を入れる人が居て、シートを壊してしまいます。そこで数式
が入っているセルに保護をかけ、変更できなくするところまでは、やった
のですが、フィルターが使えないことがわかりました。フィルターはどう
しても必要とのこと、保護、フィルターを両立?させることできないかと
ネット上で調べまくったのですが無理なようですね。次なる手段として、
スクロールエリアを設定してしまえばと考え、試しているのですが、I列
の5行目から下にスクロールエリアを定めるということがどうしてもでき
ません、そもそも、こんなことは無理なのでしょうか?
4行目のI列には、出納簿の始まりで、繰越が入るため、どうしてもここは
セルを選択できなければなりません。
その下の5行目からは、数式が入っているので、スクロールできなくして
選択できなくすれば、と考えているのですが・・・
何か良い方法がありましたら、教えてください。お願いいたします。
                             (T.K)

こんにちは

VBAを使うとExcel2000でもシート保護とオートフィルターを併用出来るようになります

オートフィルターを設定し、シート保護を解除した状態で

ThisWorkbookモジュールに

 Private Sub Workbook_Open()
 Sheets("test").EnableAutoFilter = True
 Sheets("test").Protect UserInterfaceonly:=True
 End Sub

 をコピペしてファイルを上書き保存して
 ファイルを開くと『"test"』部分に指定したシートが
 シート保護された状態でオートフィルタが使えるようになります。

 ※パスワードを設定している場合は『Protect』を『Protect:="****"』に変更して
 『"****"』を任意のパスワードに変更してください (boy)


 boyさん、ありがとうございます。下のように書き換えました。
動いております。グー!です。 
   With Sheets("金銭出納簿")
        .Unprotect                      ' 一旦、保護を解除
        .Range("E4:E121").Select
        Selection.AutoFilter
       .EnableAutoFilter = True         ' オートフィルタを利用可に
       .Protect UserInterfaceonly:=True ' 再度、シート保護
    End With
起動後、データのある最終行プラス1行目にアクティブセルを動かしておこうと
思い次の一文を入れたのですが、
Range("B65530").End(xlUp).Offset(1).Select
フィルターが掛からなくなります。
これは、.Protect UserInterfaceonly:=Trueの関係でしょうか?
後学のため教えていただければ幸いです。

こんにちは

>これは、.Protect UserInterfaceonly:=Trueの関係でしょうか

 違います

『Selection.AutoFilter』の部分です

 フィルターを設定状態⇒フィルター解除
 フィルターの設定なし⇒フィルター設定
 になってしまいます。

>.Range("E4:E121")

 常に上記の範囲にフィルタを使用したいのですか?

 オートフィルターを使用可能な状態で保存しているなら
 『Selection.AutoFilter』は不要なのでは?
 それともOn/Offを確認する必要があるのですか?

 お世話になります。あまり活発でない団体の出納簿なので、これくらいの行数で十分と考え
121行に設定しました。なお、E列には「摘要その2」のようなものが入り、支出や収入内容が
入ります。従って、この列でフィルターをかければ、収入か支出か、それが何日で、幾らで、
支払先もしくは誰から受け取ったお金かが判ると考えたからです。それ以外の意味はありませ
んが、余り沢山フィルタのマークが表示されるのも煩いかなと考えたからです。
Range("B65530").End(xlUp).Offset(1).Selectを書く位置によって機能するようで、試してみ
たのですが、期待した程でもないのではずしてしまいました。ありがとうございました。参考
になりました。
それよりも大きな問題として、保護もオートフィルタもトグルボタン。
シート上にボタンを配置してそこで「上書き保存」、「保存せずに終了」を決定するようにし
たのですが、ファイルメニューのの終了から「上書き保存」や「保存せずに終了」を選択し、
終了されてしまうとトグルボタンがオートフィルタをオフにして終わったのかそれともオンに
して終わったのかによってマクロが期待通りに動いてくれなくなってしまいます。
どのように設定するのが良いのでしょうか?
いろいろ試してはいるのですが、頭が混乱してしまいます。よろしくお願いいたします。


 こんにちは

 ファイルを開いた時に常に『シート保護』と『オートフィルター』が
 設定された状態をデフォルトにしては駄目なのでしょうか?

 ThisWorkbookの『Selection.AutoFilter』の前後を以下に変更
 If Not .AutoFilterMode Then
   Selection.AutoFilter
 End If

 するのは駄目でしょうか?

 boyさん、ありがとうございました。
考えていた形に出来上がりました。貴重なアドバイス戴き、本当にありがとう
ございました。

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.