Excel VBA質問箱 IV

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

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


3548 / 13644 ツリー ←次へ | 前へ→

【61466】カーソルの動きがおかしい タッちゃん 09/5/11(月) 19:00 質問[未読]
【61467】Re:カーソルの動きがおかしい りん 09/5/11(月) 19:50 発言[未読]
【61478】Re:カーソルの動きがおかしい タッちゃん 09/5/12(火) 21:41 お礼[未読]

【61466】カーソルの動きがおかしい
質問  タッちゃん  - 09/5/11(月) 19:00 -

引用なし
パスワード
   Auto_Openで、下記の設定をしました。
  With ActiveSheet
   .ScrollArea = "A1:I59"        'スクロール可能領域
   .Protect UserInterfaceOnly:=True   'プロテクト
   .EnableSelection = xlUnlockedCells  'ロックセルは非選択
  End With
この設定の下では、Tabキーを押せば、保護の指定が無いセルを右から左に
移動し、I列の次は1行下の(保護指定がなければ)A列に移動します。
所が、なぜか数箇所のみI列から次に移動しない行があります。
→キーでも同じ現象になります。
何か変な設定をしてしまったのか?と色々試しましたが原因は判りません。
どなたかヒントがあれば教えてください。
なお、プロテクトを外したり、ロックセルの非選択を止めるとうまく行きます。

【61467】Re:カーソルの動きがおかしい
発言  りん E-MAIL  - 09/5/11(月) 19:50 -

引用なし
パスワード
   タッちゃん さん、こんばんわ。

>Auto_Openで、下記の設定をしました。
>  With ActiveSheet
>   .ScrollArea = "A1:I59"        'スクロール可能領域
>   .Protect UserInterfaceOnly:=True   'プロテクト
>   .EnableSelection = xlUnlockedCells  'ロックセルは非選択
>  End With
>この設定の下では、Tabキーを押せば、保護の指定が無いセルを右から左に
>移動し、I列の次は1行下の(保護指定がなければ)A列に移動します。
>所が、なぜか数箇所のみI列から次に移動しない行があります。
>→キーでも同じ現象になります。

範囲内で保護がかかっているセルが残っているとかはないでしょうかね。

このマクロを実行したあとで、
Sub Auto_Open()
  With ActiveSheet
   .ScrollArea = "A1:I59"        'スクロール可能領域
   .EnableSelection = xlUnlockedCells  'ロックセルは非選択
   .Protect UserInterfaceOnly:=True   'プロテクト
  End With
End Sub

チェック用に着色(途中にいくつか保護セルをいれてあるので着色確認)
Sub test()
  Dim r1 As Range, s1 As String
  For Each r1 In ActiveSheet.Range("A1:I59")
   If r1.Locked = True Then
     r1.Interior.ColorIndex = 38 'ピンク色
   End If
  Next
End Sub
何か関連がありそうですか?

あとは、SelectionChangeイベントで何か設定していたりしませんか。

こちらでは上記マクロで、特に問題なく動きました(WinXP & XL2003)。
念のため、後ほど(Win7 & XL2007)でも試してみますね。

【61478】Re:カーソルの動きがおかしい
お礼  タッちゃん  - 09/5/12(火) 21:41 -

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

>範囲内で保護がかかっているセルが残っているとかはないでしょうかね。
→再確認しましたが、残っていませんでした。
 (ご教示のマクロも試しました。)
>
>あとは、SelectionChangeイベントで何か設定していたりしませんか。
→下記マクロを起動しています。
'入力セルを黄色で表示する
Private Sub Workbook_SheetSelectionChange(略)
  Rw = Target.Row: Rc = Target.Column
    - 略 -
  ActiveSheet.Range("A1:I59").Interior.ColorIndex = xlNone
  ActiveSheet.Cells(Rw, Rc).Interior.ColorIndex = 6 '色指定
End Sub

>
>こちらでは上記マクロで、特に問題なく動きました(WinXP & XL2003)。
>念のため、後ほど(Win7 & XL2007)でも試してみますね。
→当方のシステムは、WinXP & XL2003です。
 お手数をお掛けしては申し訳ないので、Win7 & XL2007でのテストは結構です。

ご指摘ありがとう御座います。思いつくことは全て試したつもりです。
これからお酒でも飲んで、ゆっくり寝てから、もう一度挑戦して見ます。

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