| 
    
     |  | ▼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
 
 確認してみて下さい。
 
 
 |  |