Excel VBA質問箱 IV

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

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


7695 / 13645 ツリー ←次へ | 前へ→

【37443】ActiveSheet.ScrollArea について マキチャン 06/5/6(土) 22:32 質問[未読]
【37445】Re:ActiveSheet.ScrollArea について Kein 06/5/6(土) 23:18 回答[未読]
【37447】Re:ActiveSheet.ScrollArea について マキチャン 06/5/7(日) 6:40 お礼[未読]

【37443】ActiveSheet.ScrollArea について
質問  マキチャン  - 06/5/6(土) 22:32 -

引用なし
パスワード
   HERO2さんの
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=37423;id=excel
で、例えば、
  ActiveSheet.ScrollArea = "A1:B10"とすると
カーソルの動きを限定できることを知り、ぜひ、利用しようと思います。


ところで、離れたセルも指定するにはどのようにすればいいのでしょう?
例えば、A1:B10 と F1:G10 にカーソルの動きを限定したい場合です。

  ActiveSheet.ScrollArea = "A1:B10,F1:G10"としてみましたが
  できませんでした。

【37445】Re:ActiveSheet.ScrollArea について
回答  Kein  - 06/5/6(土) 23:18 -

引用なし
パスワード
   ScrolAreaプロパティでは、複数のセル範囲を指定するのは無理です。
なので別のやり方として、ワークシートのイベントマクロを使う方法を提案します。
以下のマクロをシートモジュールに入れて、いったん他のシートを開いてから該当
のシートに戻って下さい。あとは任意のセルをいくつか選択してみれば、動作が
分かると思います。

Private Sub Worksheet_Activate()
  Application.Goto Range("A1"), True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  On Error Resume Next
  With Application
   If .Intersect(Target, Range("A1:B10, F1:G10")) Is _
    Nothing Then
     .EnableEvents = False
     .PreviousSelections(1).Select
     .EnableEvents = True
   Else
     .Goto ActiveCell
   End If
  End With
End Sub

【37447】Re:ActiveSheet.ScrollArea について
お礼  マキチャン  - 06/5/7(日) 6:40 -

引用なし
パスワード
   Kein さん:回答ありがとうございます。
早速、ためさせてもらいました。
こうすれば、離れたセルでも、カーソルの
動きを制限できますね。
ありがとうございました。利用させてもらいます。

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