Excel VBA質問箱 IV

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

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


37548 / 76732 ←次へ | 前へ→

【44349】Re:並び替えについて
発言  ichinose  - 06/11/13(月) 18:23 -

引用なし
パスワード
   ▼魚 さん:
こんばんは。

>データはA〜AP列×45,000行あります。
45000行もあるデータをExcelで扱ったことがありません。
(このような場合、Access等のデータベースに移行してしまいます)

>それからコードはシンプルにして
>質問ですが、上記のようにソート範囲の指定をせずとも
>A〜APはきちんとソートされますか?

Worksheets(1).Range("A1").CurrentRegion

と記述していますね!!これは、アクティブセル領域 を返すプロパティです
(アクティブセル領域 については、Helpを参照のこと)。

よって、ソート範囲は指定されています。

>A〜APはきちんとソートされますか?

CurrentRegionでは、以下のようなデータの場合、正しくソートされません。


新規ブックの標準モジュールに

'===============================================================
Option Explicit
Sub main()
  Call mk_sample 'サンプルデータの作成
  MsgBox "sort ready"
  With Worksheets(1).Range("A1").CurrentRegion
     .Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, OrderCustom:=1, _
         MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin
     End With
End Sub
'========================================================================
Sub mk_sample()
  With Range("a1:ap1")
    .Formula = "=""項目""&column()"
    .Value = .Value
    With .Offset(1, 0).Resize(30)
     .Formula = "=int(rand()*1000)+1"
     .Value = .Value
     End With
    .Offset(31, 0).EntireRow.ClearContents
    With .Offset(32, 0).Resize(5)
     .Formula = "=int(rand()*1000)+1"
     .Value = .Value
     End With
    End With
end sub


上記のコードをコピーして実行してみてください。


実行すると、サンプルデータをアクティブシートに作成します。

A列〜AP列にサンプルデータを作成しますが(A1からAP40で1行目は、項目名)、

32行目だけが全て未入力になっています。


このようなデータに対して、

Range("A1").CurrentRegion

で取得するセル範囲は A1〜AP31であって、A1〜AP40にはなりません。


このようなデータになる可能性がある場合は、

CurrentRegion で正しくセル範囲を取得できませんから、注意が必要です。
1 hits

【33289】並び替えについて 06/1/7(土) 15:02 質問
【33295】Re:並び替えについて かみちゃん 06/1/7(土) 18:03 発言
【33296】Re:並び替えについて ichinose 06/1/7(土) 18:32 発言
【33373】Re:並び替えについて Hirok 06/1/9(月) 21:36 質問
【33374】Re:並び替えについて かみちゃん 06/1/9(月) 21:50 発言
【33375】Re:並び替えについて ichinose 06/1/9(月) 22:16 発言
【33377】Re:並び替えについて Hirok 06/1/10(火) 10:29 お礼
【33400】Re:並び替えについて ichinose 06/1/10(火) 19:00 発言
【33403】Re:並び替えについて Hirok 06/1/10(火) 21:37 お礼
【33378】Re:並び替えについて 06/1/10(火) 11:26 お礼
【44311】Re:並び替えについて 06/11/12(日) 22:42 質問
【44312】Re:並び替えについて ichinose 06/11/13(月) 7:29 発言
【44314】Re:並び替えについて 06/11/13(月) 9:41 質問
【44349】Re:並び替えについて ichinose 06/11/13(月) 18:23 発言
【44353】Re:並び替えについて 06/11/13(月) 20:23 お礼

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