• ベストアンサー

データの一括選択

1行目と2行目にタイトルが入っていてウインド固定しています。 3行目から横方向A~DZにデータが入り、行は千以上になる予定です。 これを並べ替えする為にデータを全て選択したいのですが、3行目から 最終行までを選択する簡単な方法は有りませんか?? フォームのボタンにマクロを登録したいと思いますが、書式を知らないので 教えて頂けませんか m(__)m

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.8

オペレーションで行うなら、  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

nomark
質問者

お礼

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

その他の回答 (12)

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.13

ka_na_deです。 KenKen_SPさん ご指摘ありがとうございます。 その通りですね。 なるほど~ さまざまな、状況を想定して考えないといけないですね。 重ね重ね参考になります。 こちらは経験少ない素人ですから、ご遠慮なく これからもご指摘ご指導よろしくお願い致します。

nomark
質問者

お礼

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

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.12

ka_na_deです。 KenKen_SPさんの回答を見て知りました。 UsedRangeは値がなくて枠線などの書式のみ設定されている セルも含めてカウントするんですね。 なるほど、そういう場合はUsedRangeでは希望の結果になりませんね。 勉強になりました~。

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.11

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

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.10

#1です。 列はDZまでと決まってましたね。 修正します。 Sub test()  Dim lngYCnt As Long  lngYCnt = ActiveSheet.UsedRange.Rows.Count  Range(Cells(3, "A"), Cells(lngYCnt, "DZ")).Select End Sub

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.9

#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

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.7

たびたび #1のka_na_deです。 もし、空白が少数であるなら、 [Ctrl]+[Shift]+[→],[→],[→],[→] で最終列までジャンプできます。

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.6

#1です。 もし、最終行が不定の場合、 1)A3セルを選択 2)[Ctrl]+[Shift]+[↓]キーを押す。 3)「名前ボックス」に「DZ????」と入力し、   [Shift]を押しながら[Enter]   ???は2)で表示された最終行の数を入れてください。

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.5

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

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.4

#1です。 おまけで回答します。 もしデータがDZ列以降にもあって、数万行もあって、 その中から、A3~DZ3000 の部分だけ選択する場合 1)A3を選択 2)左上に「A3」と表示された「名前ボックス」に「DZ3」と入力し   [Shift]を押しながら[Enter] 3)次に「名前ボックス」に「DZ3000」と入力し、   [Shift]を押しながら[Enter]

  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.3

マクロではありませんが、ショートカットです。 3行目を選択して、「Ctrl」+「Shift」+「↓」キーを同時に押しますと、最終行までが選択されます。 「選択に関するショートカット一覧」 http://dreamy.boy.jp/short1.htm

nomark
質問者

お礼

ありがとうございました。 その動作をマクロに記録してボタンで一括選択する様にしました。 色んなショートカットあるんですね^^; 勉強になりました。ありがとうございました m(__)m

関連するQ&A