Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11163 / 13646 ツリー ←次へ | 前へ→

【17739】カーソルを一段した左端に移動したい ponpon 04/9/7(火) 0:07 質問[未読]
【17741】Re:カーソルを一段した左端に移動したい ichinose 04/9/7(火) 8:07 回答[未読]
【17750】Re:カーソルを一段した左端に移動したい ponpon 04/9/7(火) 10:14 質問[未読]
【17756】Re:カーソルを一段した左端に移動したい つん 04/9/7(火) 10:41 発言[未読]
【17764】Re:カーソルを一段した左端に移動したい ponpon 04/9/7(火) 11:10 お礼[未読]

【17739】カーソルを一段した左端に移動したい
質問  ponpon  - 04/9/7(火) 0:07 -

引用なし
パスワード
    ponponです。
 子どもに100マスの計算問題をさせていますが、カーソルの移動を制限したいのですが、やり方がわからず、今は範囲をselectした状態で入力させています。これならエンターキーで次のセルに移動しますから。
 ところが、間違えてBSキーを押したり、入力し直すとselect状態がキャンセルされ、右端まで行くと矢印キーで次の行の先頭まで移動させなければなりません。
 カーソルの移動範囲はE7からN16です。
 E7からF7、G7・・・・・M7まで「入力」エンターで移動し、N7「入力」エンターで
 E8に移動し、・・・・最終セルN16まで移動したいのですが、何かよい方法はありませんか?
 ※マクロででカーソル移動は「右」にしていますので100マスの右端にきたら一段し  たの左端にカーソルを移動させたいのです。
 
 考えていること NO1
   右端セルでエンターを押したら 
   offsetで一段した左端セルを選択する

 考えていること NO2 
   右端の次のセルが選択されたら、
   一段したの左端のセルを選択する
  ※これは確かうまくいかなかったと思います。

【17741】Re:カーソルを一段した左端に移動したい
回答  ichinose  - 04/9/7(火) 8:07 -

引用なし
パスワード
   ▼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

確認してみて下さい。

【17750】Re:カーソルを一段した左端に移動したい
質問  ponpon  - 04/9/7(火) 10:14 -

引用なし
パスワード
   ▼ichinose さん:
>
>よって、VBAでブックが開かれた直後に上記設定を行う処理を記述します。
>
>標準モジュールに
>'===========================================================
>Sub auto_open()
>  Application.MoveAfterReturnDirection = xlToRight
>  Worksheets("sheet1").ScrollArea = "$e$7:$n$16"
>'         ↑設定するシート名    ↑設定するセル範囲
>End Sub
>
>確認してみて下さい。
 
 福岡ですのでただ今台風が真上にいます。学校が休みになったので停電までがんばろうと思っています。 
  
 
ありがとうございました。無事解決いたしました。
たぶん簡単なことだろうと、ヘルプなどで「カーソルの移動」などで検索したり「keydoun」などで調べたのですが、見つからず苦労していました。
本当にありがとうございました。

 ついでに厚かましくもう一つ質問をよろしいでしょうか?
実は、自宅では、ExcelXP(2002)で開発しているのですが、学校ではExcel2000環境です。子どもがいろいろといじらないように、シートに保護をかけていたのですが、Excel2000環境では、そのままだとマクロがうまく機能しません。
 子どもの記入範囲を採点し、間違いは、文字色赤背景黄色、正解は文字色青背景緑にし、新規問題では背景色なしにしていますが、

  Range("E7:N16").Select
  With Selection
    .Value = Clear
    .Font.ColorIndex = 5
    .Interior.ColorIndex = xlNone ←ここでエラー
  End With
 「Interiorのプロパティーを取得できませんでした・・・」のエラーがでるのですが、
 シートの保護の仕方に2000とXPでは違いがあるのでしょうか?また、同じように保護するにはどうしたらよいのでしょうか?
 申し訳ありませんがよろしくお願いします。

【17756】Re:カーソルを一段した左端に移動したい
発言  つん E-MAIL  - 04/9/7(火) 10:41 -

引用なし
パスワード
   おはようございます。
ichinosenさんがまたいらっしゃると思いますが・・・

>  Range("E7:N16").Select
>  With Selection

      ↓ここエラーになりませんか?
>    .Value = Clear

     .Value = "" とか
     .ClearContents とかでないとダメだと思います

>    .Font.ColorIndex = 5
>    .Interior.ColorIndex = xlNone ←ここでエラー
>  End With

2000と2002の保護の違いは私もよくは把握してませんが、
VBAでシートの保護もすると、「マクロでの変更のみOK」の設定が出来ると思います。
それで解決出来ないでしょうか?

【17764】Re:カーソルを一段した左端に移動したい
お礼  ponpon  - 04/9/7(火) 11:10 -

引用なし
パスワード
   ▼つん さん  ichinosenさん:

 まだ停電にならないのでがんばってます。
 カーソルの動く範囲が限定されたため、学年・組・番号・名前が入力できなくて困ったのですが、ユーザーフォームで入力するように変更しましたので、保護をしなくてもよくなり、Excel2000でもうまく動くようになりました。
 根本的な解決ではありませんが・・・・
ありがとうございました。 


>>  Range("E7:N16").Select
>>  With Selection
>
>      ↓ここエラーになりませんか?
>>    .Value = Clear
>
>     .Value = "" とか
>     .ClearContents とかでないとダメだと思います
>
>>    .Font.ColorIndex = 5
>>    .Interior.ColorIndex = xlNone ←ここでエラー
>>  End With
>
>2000と2002の保護の違いは私もよくは把握してませんが、
>VBAでシートの保護もすると、「マクロでの変更のみOK」の設定が出来ると思います。
>それで解決出来ないでしょうか?

11163 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free