Excel VBA質問箱 IV

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

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


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

【23891】セレクトしたセルを画面中央にして表示したい gedge 05/4/6(水) 18:50 質問[未読]
【23892】Re:セレクトしたセルを画面中央にして表... ponpon 05/4/6(水) 19:23 発言[未読]
【23896】Re:セレクトしたセルを画面中央にして表... gedge 05/4/6(水) 19:44 お礼[未読]

【23891】セレクトしたセルを画面中央にして表示し...
質問  gedge  - 05/4/6(水) 18:50 -

引用なし
パスワード
   はじめまして。皆様に質問があります。

データシートの1列目に、1行目から100行目まで数値データが入っているものとします。ここでセルの中身を上から順に参照し、「0」の入ったセルを見つけたらそのセルをセレクトして画面をいったんストップし、「これですか?」というダイアログを表示させる、というコードを書いています。だいたい以下のようなものです。

Sub Find_zero()
  For i = 1 to 100
   If Cells(i, 1).Value = 0 Then
     Cells(i, 1).Select
     MsgBox "これですか?"
   End If
  Next i
End Sub

さて、このコードを実行すると、画面がストップしたとき、ちょうどセレクトしたセルが画面の一番下に来てしまうことがあります。そうではなく、画面がストップするときには常にセレクトしたセルが画面の中央付近に位置するようにしたいと考えています。きっと簡単にできるはずだとヘルプを探したのですが、要領が悪いのか見あたりません。どなたか解決法をご存じの方がおられましたらご教示ください。よろしくお願いします。

【23892】Re:セレクトしたセルを画面中央にして表...
発言  ponpon  - 05/4/6(水) 19:23 -

引用なし
パスワード
   ponponです。

小手先のやり方ですが、
こういう意味でなかったら、すみません。

Sub Find_zero()
  For i = 1 To 100
   If Cells(i, 1).Value = 0 Then
    If i <= 15 Then
     Cells(i, 1).Select
    Else
     Application.Goto Reference:=Worksheets("Sheet2").Cells(i - 15, 1), _
             scroll:=True
     Cells(i, 1).Select
    End If
     MsgBox "これですか?"
   End If
  Next i
End Sub

【23896】Re:セレクトしたセルを画面中央にして表...
お礼  gedge  - 05/4/6(水) 19:44 -

引用なし
パスワード
   ▼ponpon さん:
>ponponです。
>
>小手先のやり方ですが、
>こういう意味でなかったら、すみません。
>
>Sub Find_zero()
>  For i = 1 To 100
>   If Cells(i, 1).Value = 0 Then
>    If i <= 15 Then
>     Cells(i, 1).Select
>    Else
>     Application.Goto Reference:=Worksheets("Sheet2").Cells(i - 15, 1), _
>             scroll:=True
>     Cells(i, 1).Select
>    End If
>     MsgBox "これですか?"
>   End If
>  Next i
>End Sub

ponponさん

早速のレス、どうもありがとうございます。まさにこういう(↑)意味です。そうかぁ、Gotoというメソッドを使うのですね。これがわからなくて悶々としておりました。大変助かりました。重ねてお礼申し上げます。

とりいそぎ

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