重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

1行目と2行目にタイトルが入っていてウインド固定しています。
3行目から横方向A~DZにデータが入り、行は千以上になる予定です。

これを並べ替えする為にデータを全て選択したいのですが、3行目から
最終行までを選択する簡単な方法は有りませんか??

フォームのボタンにマクロを登録したいと思いますが、書式を知らないので
教えて頂けませんか m(__)m

A 回答 (13件中1~10件)

オペレーションで行うなら、



 1. [Ctrl]+[G] - [セルの選択]で最後のセルを選択
 2. 数式バーの横に最後のセルのアドレスが表示されているので、
   そこを書き換えてEnter
   例えば、最後のセル選択で DZ1500 と表示されていたら、
   A3:DZ1500 と書き換えます。

ただし、この操作で得られる「最後のセル」というのは、書式のみ
設定され値のないセルも「使用済み」セルとしてカウントされて
います。VBA で言えば、UsedRange や SpecialCells で得られる
セルです。

 # これで問題なければ OK なんですが、実用途ではデータのある
 # セル範囲のみほしい場合がほとんどです。

途中に空セルがある場合で、値が入力されているセルの最終行番号
を取得するには、End(xlUp) がよく使われますが、こちらは、
「確実に最終行を取れる列」が事前にわかっていないと使えません。

で、結局歯抜けデータの場合、Find を使うのが一番手っ取り早い。
こんな感じ。

Sub Sample()

  Dim r As Long
  On Error Resume Next
  r = Cells.Find(What:="*", _
          SearchDirection:=xlPrevious, _
          SearchOrder:=xlByRows).Row
  Range("A3:DZ" & CStr(r)).Select

End Sub
    • good
    • 0
この回答へのお礼

丁寧な解説ありがとうございました。
今日は他の事で手一杯に成ってしまったので
まだ試せていませんが、今度の休日にまた試してみたいと思います。
コピーしてデスクトップに保存しました^^
ありがとうございました m(__)m

お礼日時:2007/07/19 04:13

ka_na_deです。



KenKen_SPさん
ご指摘ありがとうございます。

その通りですね。

なるほど~
さまざまな、状況を想定して考えないといけないですね。

重ね重ね参考になります。

こちらは経験少ない素人ですから、ご遠慮なく
これからもご指摘ご指導よろしくお願い致します。
    • good
    • 0
この回答へのお礼

何度もご丁寧にお答え頂けありがとうございました。
私の目指している物は近い様でまだ遠そうです。
これからも質問いっぱいさせて頂くと思いますので
どうぞ宜しくお願いしますね m(__)m

お礼日時:2007/07/19 04:19

ka_na_deです。



KenKen_SPさんの回答を見て知りました。

UsedRangeは値がなくて枠線などの書式のみ設定されている
セルも含めてカウントするんですね。

なるほど、そういう場合はUsedRangeでは希望の結果になりませんね。

勉強になりました~。
    • good
    • 0

nomark さん、ka_na_de さん、こんばんは。



差し出がましいのですが...

UsedRange を使う場合は、次のような風にした方が良いと思い
ますが、いかがでしょうか?
例えば、1~5行目に空行を挿入すると UsedRange.Rows.Count
では、正しく選択できなくなります。
もちろん、データが1行目から始まる前提ならば、無駄レス
なのでその際は、スルーして下さい。

  Dim lngY As Long
  On Error Resume Next
  With ActiveSheet.UsedRange
     lngY = .Cells(.Cells.Count).Row
  End With
  Range(Cells(3, "A"), Cells(lngY, "DZ")).Select
    • good
    • 0

#1です。



列はDZまでと決まってましたね。
修正します。

Sub test()
 Dim lngYCnt As Long
 lngYCnt = ActiveSheet.UsedRange.Rows.Count
 Range(Cells(3, "A"), Cells(lngYCnt, "DZ")).Select
End Sub
    • good
    • 0

#1です。



マクロの質問だったのですね。

これでどうですか?

Sub test()
 Dim lngYCnt As Long
 Dim intXCnt As Integer

 lngYCnt = ActiveSheet.UsedRange.Rows.Count
 intXCnt = ActiveSheet.UsedRange.Columns.Count

 Range(Cells(3, "A"), Cells(lngYCnt, intXCnt)).Select

End Sub
    • good
    • 0

たびたび #1のka_na_deです。



もし、空白が少数であるなら、

[Ctrl]+[Shift]+[→],[→],[→],[→]
で最終列までジャンプできます。
    • good
    • 0

#1です。



もし、最終行が不定の場合、

1)A3セルを選択
2)[Ctrl]+[Shift]+[↓]キーを押す。
3)「名前ボックス」に「DZ????」と入力し、
  [Shift]を押しながら[Enter]

  ???は2)で表示された最終行の数を入れてください。
    • good
    • 0

#1です。



補足説明を今見ました。
#4の方法でいけると思います。
    • good
    • 0

#1です。


おまけで回答します。

もしデータがDZ列以降にもあって、数万行もあって、
その中から、A3~DZ3000 の部分だけ選択する場合

1)A3を選択
2)左上に「A3」と表示された「名前ボックス」に「DZ3」と入力し
  [Shift]を押しながら[Enter]
3)次に「名前ボックス」に「DZ3000」と入力し、
  [Shift]を押しながら[Enter]
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!