|
▼ponpon さん:
> ponponです。
> 子どもに100マスの計算問題をさせていますが、カーソルの移動を制限したいのですが、やり方がわからず、今は範囲をselectした状態で入力させています。これならエンターキーで次のセルに移動しますから。
> ところが、間違えてBSキーを押したり、入力し直すとselect状態がキャンセルされ、右端まで行くと矢印キーで次の行の先頭まで移動させなければなりません。
> カーソルの移動範囲はE7からN16です。
> E7からF7、G7・・・・・M7まで「入力」エンターで移動し、N7「入力」エンターで
> E8に移動し、・・・・最終セルN16まで移動したいのですが、何かよい方法はありませんか?
> ※マクロででカーソル移動は「右」にしていますので100マスの右端にきたら一段し たの左端にカーソルを移動させたいのです。
>
> 考えていること NO1
> 右端セルでエンターを押したら
> offsetで一段した左端セルを選択する
>
> 考えていること NO2
> 右端の次のセルが選択されたら、
> 一段したの左端のセルを選択する
> ※これは確かうまくいかなかったと思います。
・当該シートのセルを選択した状態で、「コントロールツールボックス」コマンドバーの
プロパティをクリックします。
・すると、当該シートのプロパティ一覧ダイアログが表示されます。
・一覧の中に「ScrollArea」と言う項目があります。
・ここに「$e$7:$n$16」と指定するとご希望の動作が可能になると思います。
が、この設定、ブックを開くたびに設定しなくてはなりません。
よって、VBAでブックが開かれた直後に上記設定を行う処理を記述します。
標準モジュールに
'===========================================================
Sub auto_open()
Application.MoveAfterReturnDirection = xlToRight
Worksheets("sheet1").ScrollArea = "$e$7:$n$16"
' ↑設定するシート名 ↑設定するセル範囲
End Sub
確認してみて下さい。
|
|