- ベストアンサー
エクセルで選択したセルがディスプレイの一番上に来るようにするには
セルrange("a100"),range("a200"),range("a300")・・・・とselectしていったとき、そのセルがものとrange("a1")の位置に表示されるようにするにはどうしたらいいのでしょう。たとえば、現在activeセルがrange("a1")にいて、range("a300")をselectしても画面上はなにも変わりません。どなたか教えてください。よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
> range("a100").select > worksheets(1).scrollarea=a1:k100 > で画面が飛んでいくんですが、range("a200"),range("a300")・・・range("a1000")といろいろ飛ばしているうちに、 > ボタンを押しても飛ばなくなってしまいます worksheets(1).ScrollArea="A1:K100" これが処理の妨げをしてそうですね。 行は100行を下限に利いてないんじゃないですか? 試しに、ScrollAreaのコードを外してみてください。 ScrollAreaはスクロール範囲を制限するものなので、 表題の処理が制限されてしまっているのでは?
その他の回答 (4)
- tkrn
- ベストアンサー率53% (33/62)
> 黄色いデバッグになってしまいます。 それはブレークポイントが設定されているのではないでしょうか? VBEの画面にて、デバッグ→すべてのブレークポイントの解除をしてください。
お礼
ありがとうございます。ブレイクポイントは解除してやっているんですが・・・。シクハク状態です!!!!!!!! 今 range("a100").select worksheets(1).scrollarea=a1:k100 で画面が飛んでいくんですが、range("a200"),range("a300")・・・range("a1000")といろいろ飛ばしているうちに、ボタンを押しても飛ばなくなってしまいます。というか、ボタンがきかなくなる!もしかして、メモリーが開放されていないで前の状態を取得しているのかと色々引っかかりまくりです。
- vvooo
- ベストアンサー率33% (3/9)
下記で出来ますが何だか不便な気がします。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.Goto Reference:=Target, Scroll:=True End Sub
お礼
ありがとうございました。でもなぜか黄色いデバッグになってしまいます。
- KenKen_SP
- ベストアンサー率62% (785/1258)
Application.Goto Reference:=Range("A100"), Scroll:=True です。
お礼
ありがとうございました。上記の方と同様に黄色いデバッグ画面になってしまいます。何が悪いんでしょう?
補足
お礼を書く欄がないので、この欄をお借りして! うまくいきました!!!ありがとうございました!!!! ニコニコ、うれしいです!
- hana-hana3
- ベストアンサー率31% (4940/15541)
range("a100").select ActiveWindow.ScrollColumn = 1 ActiveWindow.ScrollRow = 100
お礼
ありがとうございます。実はこの方法は私もスクロールの範囲を指定して、a100からa1000まで、100行おきに行ったりきたりしているうちに、うまく表示ならなくなるんです。やりたいことは、a100からa1000までをブロックごとに行ったりきたりして、そのときセルがディスプレイの左上にきて、スクロール範囲が固定されて別のエリアに行かないようにしたいんですが・・・。でもご回答ありがとうございます。
お礼
解決いたしました!コードで記述するスクロールのエリアをいったん広げてから再度設定するとうまくいきました!同じような処理を何回かしているので、記述したスクロールエリアがそのまま残っていて動かなくなっていたようです。ありがとうございました!