こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBA・一定の条件でセルを選択したい

エクセルVBA・一定の条件でセルを選択したい

添付した画像で、毎日、社員番号等が入力されます。
D列の内線番号は空白の場合もありますがA、B、C列は必ず入力されます。
添付画像だと「A1:D5」という具合に選択したいのです。
考え方としては、A列の*行に入力された場合は、「A1:D*」を選択するという具合になるかと思います。

私の目的は、セル範囲を選択したあと、並べ替えたいと考えています。
この並べ替えは自動記録でできそうです。
よろしくお願いします。

投稿日時 - 2010-09-23 22:01:53

QNo.6203452

困ってます

質問者が選んだベストアンサー

もし、勉強のためなら、こういう書き方があります。
それぞれが、若干の違いがあります。VBAは、なるべく同じパターンを書かないようにします。
また、必ず、親オブジェクトを意識しないといけませんね。Rangeも、Cellsは、オブジェクトではなくて、プロパティです。

Sub Test1()
With ActiveSheet
 .Range("A1", .Cells(Rows.Count, 1).End(xlUp).Offset(, 3)).Select
End With
End Sub

Sub Test12()
With ActiveSheet
 .Range("A1", .Cells(Rows.Count, 1).End(xlUp)).Resize(, 4).Select
End With
End Sub

Sub Test13()
With ActiveSheet
 .Range("A1").CurrentRegion.Resize(, 4).Select
End With
End Sub

投稿日時 - 2010-09-24 08:28:48

お礼

ご回答ありがとうございます。
今後のため、ご提示いただいた次の3つについて、よく調べてみます。
With
Offset
Resize

投稿日時 - 2010-09-25 11:12:01

ANo.3

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

シンプルに、

Cells(1,1).CurrentRegion.Select

でいいと思いますよ。

なお、選択しなくても以下のように、直接 Sort を掛けてしまう方法もあります。


Sub Narabikae()

Cells(1, 1).CurrentRegion.Sort _
    Key1:=Cells(1, 3), _
    Order1:=xlDescending, _
    Header:=xlNo, _
    OrderCustom:=1, _
    MatchCase:=False, _
    Orientation:=xlTopToBottom, _
    SortMethod:=xlPinYin

End Sub

投稿日時 - 2010-09-23 23:08:56

お礼

ご回答ありがとうございます。
>Cells(1,1).CurrentRegion.
このコードも覚えておくと、色々と便利そうですね。

投稿日時 - 2010-09-25 10:58:14

ANo.1

こんばんは!
A1セルから入力されている最終行のD列すべてを選択するだけで良いわけですかね?

もしそうであれば一例です。
ごく単純に・・・

Sub test()
Dim i As Long
i = Cells(Rows.Count, 1).End(xlUp).Row
Range(Cells(1, 1), Cells(i, 4)).Select
End Sub


ではどうでしょうか?m(__)m

投稿日時 - 2010-09-23 22:17:22

お礼

早速のご回答ありがとうございます。
ご教示いただいたコードで無事、解決しました。
>Cells(Rows.Count, 1).End(xlUp).Row
これを覚えると色々と便利そうですね。
たいへん、勉強になりました。

投稿日時 - 2010-09-23 23:06:03

あなたにオススメの質問