- ベストアンサー
ExcelVBA「何か入ってるセルまでジャンプ」
ExcelのVBAでアプリケーションをつくっており、何かが入力されているセルまでカーソルをジャンプさせたいのですが、その場合どう指定すれば良いのか教えてください。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
> ちなみに、ひとつの列の中で下へ下へ、「空白でない」セルにジャンプしたいです。 これは最初に提示すべき条件ですよ。 If Selection.End(xlDown).Row < Rows.Count Then Selection.End(xlDown).Select Else MsgBox ("これより下にはデータなし") End If [Ctrl]+[↓]と同じことをやっています。
その他の回答 (5)
- mu2011
- ベストアンサー率38% (1910/4994)
NO1,3です。 >ちなみに、ひとつの列の中で下へ下へ、「空白でない」セルにジャンプしたいです。 ⇒後だしジャンケンでは負けますね。 単にCtrl+↓キー押下でよろしいのではないでしょうか。 無理やりです。 必要な列の先頭にカーソルを合わせて、マクロ実行してみて下さい。 Sub sample() Application.SendKeys ("^{down}"), True End Sub
お礼
ありがとうございます。 説明不手際で申し訳ないです・・・。あせってました。
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
自身なし Sub ジャンプする() If Selection.Value = "" Then Selection.End(xlDown).Select If Selection.Row = Rows.Count Then Selection.End(xlUp).Select End If End Sub 空白セルで実行してくだい
お礼
ありがとうございます。 確かに空白でないセルでやるとエラーになります(笑) 今回の私の問題では使えませんでしたが、勉強になりました!
- mu2011
- ベストアンサー率38% (1910/4994)
NO1です。 一部コードが誤っていましたので訂正します。 Dim pos As Range Set pos = ActiveSheet.Cells.Find("*") If Not pos Is Nothing Then pos.Select
お礼
かさねてありがとうございます。
- kybo
- ベストアンサー率53% (349/647)
A列でA1スタートの場合。 Sub macro() Dim R As Range Set R = Range("A:A").Find("*", Range("A1")) If Not R Is Nothing Then Application.Goto R End If End Sub
お礼
ありがとうございます! 参考にいたします。
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 Dim pos As Range Set pos = ActiveSheet.Cells.Find("*") If Not a Is Nothing Then pos.Select
お礼
ありがとうございます。 いただいたものをそのまま実行すると、3行目がエラーで反転表示になります。 申し訳ないのですが、各行の意味をコメントでつけていただけないでしょうか? よろしくお願いいたします。
補足
ちなみに、ひとつの列の中で下へ下へ、「空白でない」セルにジャンプしたいです。
お礼
ありがとうございます。 本当ですね、きちんと最初にご説明するべきでした。 お答えピッタリでした。助かりました!