• ベストアンサー

エクセルで特定のセルしか選択させない方法?

エクセル97です。シートの連続しない特定のセル数箇所だけをカーソルで選択できるようにし、他の部分はカーソルが移動しないようにしたいのです。過去の書き込みをみて Sub Test() ActiveSheet.ScrollArea = "F10" ActiveSheet.ScrollArea = "F12" ActiveSheet.ScrollArea = "F14" End Sub と、やってみましたが、F10で止ったままになってしまいました。 連続しないセルを指定するのはどうすればいいのでしょうか? また、この制限を解除する方法も教えてくださいますようお願いします。

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

  • ベストアンサー
回答No.2

まずマクロを実行する前に特定のセルだけをロックを外します。 その方法は、セルF10で「書式」→「セル」→保護タブでロックのチェックを外し、同様にF12、F14などもロックを外します。 その後シートを保護します。 Sub 入力制限() Worksheets("sheet1").EnableSelection = xlUnlockedCells End Sub このマクロで「Sheet1」上のロックされていないセルだけを選ぶことができるようになります。他のセルは選ぶこともできなくなるはずです。 Sub リセット() Worksheets("sheet1").EnableSelection = xlNoRestrictions End Sub 次にこのマクロを実行すると解除されます。 他にもスクロールエリアを制御したりすることもできます。 VBAはいろいろできておもしろいですね。

otasukey
質問者

お礼

ありがとうございます。これで、入力させたいセルへの移動については思った通りなのですが、実はロックしたセルも数箇所選択したいところがあるんです。(そこにフォームでチェックボックスやドロップダウンリストボックスを配置しますので) その場合はどうすればいいのでしょう?

その他の回答 (4)

回答No.5

#2で回答した者です。 >ロックしたセルも数箇所選択したいところがあるんです。(そこにフォームでチェックボックスやドロップダウンリストボックスを配置しますので) ちょっとイメージが湧きませんが、チェックボックスやドロップダウンはどうせマウスでクリックするのですから、カーソルがそこに動く必要はないのではないでしょうか。単にその場所にカーソルが動くだけならば、そのセルのロックを外せばできますが、結局ドロップダウンリストボックスなどの場合はその先にリストを選ぶ必要があり、マウス操作になるので必要ないのでは? カーソルが移動した後、マウス以外でどのようにリストを選択したいのでしょう。 マウスならすでにチェックやドロップダウンは自由に使えます。 また、チェックボックスなども「コントロールの書式設定」→「保護」タブでロックが外せますが、これはあまり意味がないようです。 結論としては「できない(カーソルの移動だけならできる)」といったところでしょうか。

otasukey
質問者

お礼

それもそうですね。 大変有難うございました。お礼が遅くなりすみません。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

#3のものです。 >うまく作動しません--->それで作動しているのです。黒く範囲指定してしまうのは、そのようになっているようです。 白いセルがアクティブセルです。そこに入力できます。 (1)入力+エンタ後に自動的にカーソルが飛ぶこと。 (2)指定されたセル以外は行かないこと。 (3)コーディングが1行で済むこと。 がメリットで、黒く範囲指定してしまうのは好みじゃないが、エクセルの仕様のようです。こう言うのもあるというぐらいで、よろしく。

otasukey
質問者

お礼

有難うございました。 お礼がおそくなり申しわけありませんでした。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

Sheet1のselection_changeイベントで、実現する ように思います。下記("a1,f2,c2")は,A1,F2,C2に セルポインタが行きます。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.Goto Worksheets("sheet1").Range("a1,f2,c2"), True End Sub ただ入力が終わったらこのルーチンが働かなくする仕掛け が必要ですが、省略。フラグを立てて、そのフラグ値によりExit Subすれば良い。

otasukey
質問者

お礼

ありがとうございました。 sheet1のモジュールにコピー&ペーストしてみましたが、うまく作動しません。 a1,f2,c2のセルが同時に選択されてしまいます。(入力は順番に出来ましたが)

  • etosetora
  • ベストアンサー率22% (39/175)
回答No.1

97で使えるかどうかわかりませんが 移動したいセルにカーソルをあわせる 書式 セル 保護 ロック のチェックマークを外します 次に ツール 保護 シートに保護 をかけます パスワードを忘れずに!

otasukey
質問者

お礼

さっそくありがとうございます。 ただ、この方法では、タブキーでの移動はそうなりますが、エンターキーでは隣りのセルに移動してしまいますので駄目なんです。すみません。