• ベストアンサー

Excel保護設定後のカーソル移動について

よろしくお願いします。(Excel2000使用です) 過去の質問で学んだのですが、 カーソルを保護ロックしたセルにいかないように、「コントロールツールボックス」-「プロパティ」から 「EnableSelection」を「1 - xlUnlockedCell」に設定しました。 その時はうまくいったのですが、保存してもう一度開くと、何故か元に戻ってしまいました。 これを、維持できる方法を教えて下さい。(単に私の操作が悪いだけかもしれませんが..) 要は、保護したセルにカーソルがいかないようにしたいのです。(入力された関数式等を上の方のウィンドウで見られたくないなどの理由があります) 別な方法として、カーソルがいっても関数式が非表示になる方法がありますか? 初心者です、上よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • R-Fuji
  • ベストアンサー率40% (18/45)
回答No.6

シートが増えるんですよね?行ではなく。ならば以下で大丈夫だと思います 例) Public Sub Workbook_Open() On Error Resume Next Dim WSheet As Worksheet For Each WSheet In Worksheets WSheet.ScrollArea = "A1:D20" Next End Sub Worksheetsはブック内のシート全て含んだコレクションを示しています。それをFor Eachで前から順に参照している感じですね。一応、On Error Resume Next は忘れないでください

fuji39
質問者

お礼

出来ました。ありがとうございます。 感謝感謝です。

その他の回答 (5)

  • R-Fuji
  • ベストアンサー率40% (18/45)
回答No.5

ScrollAreaです。誤字、申し訳ない。 例) Public Sub Workbook_Open() Worksheets("Sheet1").ScrollArea = "A1:D20" End Sub

fuji39
質問者

お礼

これです! 出来ました。ありがとうございます。 甘えついでにもう1つお願いを聞いてもらえるとありがたいです。 (補足にてご説明させていただきます) よろしくお願い致します。

fuji39
質問者

補足

日々シート数が追加あるいは削除されてます。 シート名を指定しないで、常に現在あるすべてのシートに適用させるにはどのようにしたらよろしいのでしょうか? お手数をお掛けして申し訳ありませんが、何卒よろしくお願い致します。

  • R-Fuji
  • ベストアンサー率40% (18/45)
回答No.4

状況によりますが、 前述されているThisWorkbook内(又はSub Auto_Open)にシートのプロパティ、ScroolAreaを設定すると移動できないようになると思います。 これも同様に再展開するとリセットされる傾向があるため、ThisWorkbook内(又はSub Auto_Open)に書きましょう。 因みに、プロパティウィンドウを開いてから(Windowオブジェクト>プロパティ同)、見出しタブをクリックすることでもシートのプロパティは参照できます。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

Bookまたはシートを所定の状態にして保護します。 ツール→マクロ→Visual Basic Editor でVBE画面に移り、 表示→プロジェクトエクスプローラでプロジェクトエクスプローラを表示します。プロジェクトエクスプローラのThisWorkbookをダブルクリック。出てきたコードウインドウに下記マクロをコピーして貼り付けます。 ここまで済んだら、Bookを保存します。 再度開くと、希望の状態になっているはずですが・・・・・・ Bookを開いた時、EnableSelectionを再設定しているだけです。 ここから ↓ Private Sub Workbook_Open()   Worksheets("Sheet1").EnableSelection = xlUnlockedCells End Sub

fuji39
質問者

お礼

これです! 出来ました。ありがとうございます。

fuji39
質問者

補足

日々シート数が追加あるいは削除されてます。 シート名を指定しないで、常に現在あるすべてのシートに適用させるにはどのようにしたらよろしいのでしょうか? お手数をお掛けして申し訳ありませんが、何卒よろしくお願い致します。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

>確かに、TabキーやEnterキーでは移動できませんが、マウスや矢印キーだと保護されたセルに移動してしまいます。 VBAでセルにカーソルが止まらないようにできますが、マウスでクリックしている間は関数式が表示されてしまいます。 関数式を見せたくないのであれば、#1の方の言うように非表示のセルに関数を入れて、その値を参照表示するような形にしないと無理でしょう。

fuji39
質問者

お礼

ありがとうございます。 でも、そうすると関数式のあるセルと参照のセルが必要になるわけですよね? 今使っているそのファイルは、結構データが多いので、できれば避けたいと思っている訳です。 (それしか方法が無いようであれば仕方ないですが)

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.1

カーソルが移動して良いセルで [書式]→[セル]→[保護]タブで □ロック のチェックを外す。 設定が終わったら、[ツール]→[シートの保護]で保護すれば、ロックを外したセルだけしか移動できなくなりますが・・・。 また、関数が入った行とか列を非表示([書式]→[行]または[列]→[表示しない])にすれば、取りあえずカーソル移動出来ないように出来ますが、それではダメですか?

fuji39
質問者

お礼

ありがとうございます。 確かに、TabキーやEnterキーでは移動できませんが、マウスや矢印キーだと保護されたセルに移動してしまいます。 (必然的にそのセルの内容が確認できてしまいます) それと、非表示にしてしまうと、関数式で求められた答えすら見えなくなってしまうので、ダメなのです。 保護されたセルの答えは見たいのですが、カーソルを移動した際に上の窓に見える関数式を見られたくないのですが.. それにはやはりそこにカーソルが移動できないようにするのが一番良い方法かと思う次第です。

関連するQ&A