Excel VBA質問箱 IV

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

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


34950 / 76738 ←次へ | 前へ→

【46991】Re:条件つき列の並べ替え [46222]関連
回答  Hirofumi  - 07/2/24(土) 18:14 -

引用なし
パスワード
   先頭行に列見出しが有る物とします

Option Explicit

Public Sub Sample()

  'データ列数を設定(例えばA列〜O列で15列)
  Const clngColumns As Long = 15
  '日付の有る列位置を設定(基準セル位置のA列からの列Offset:C列)
  Const clngDate As Long = 2
  'D列の列位置を設定(基準セル位置のA列からの列Offset:D列)
  Const clngKey As Long = 3
  
  Dim i As Long
  Dim lngRows As Long
  Dim rngList As Range
  Dim vntData As Variant
  Dim strProm As String
  
  'Listの左上隅セル位置を基準として設定(列見出しの最左セル位置)
  Set rngList = ActiveSheet.Cells(1, "A")
  
  '画面更新を停止
  Application.ScreenUpdating = False
  
  With rngList
    'データ行数を取得
    lngRows = .Offset(Rows.Count - .Row, clngDate).End(xlUp).Row - .Row
    'データが無い場合
    If lngRows <= 0 Then
      strProm = "データが有りません"
      GoTo Wayout
    End If
    '日付データを配列に取得
    vntData = .Offset(1, clngDate).Resize(lngRows + 1).Value
  End With
  
  '日付の行位置を取得
  For i = lngRows - 1 To 1 Step -1
    If vntData(lngRows, 1) <> vntData(i, 1) Then
      Exit For
    End If
  Next i
  
  'データを整列
  With rngList
    If lngRows - i > 0 Then
      .Offset(i + 1).Resize(lngRows - i, clngColumns).Sort _
          Key1:=.Offset(i + 1, clngKey), Order1:=xlAscending, _
          Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
          Orientation:=xlTopToBottom, SortMethod:=xlCodePage
    End If
  End With
  
  strProm = "処理が完了しました"
  
Wayout:
  
  '画面更新を再開
  Application.ScreenUpdating = True
  
  Set rngList = Nothing
  
  MsgBox strProm, vbInformation
  
End Sub

0 hits

【46982】条件つき列の並べ替え [46222]関連 さや 07/2/24(土) 16:20 質問
【46985】Re:条件つき列の並べ替え [46222]関連 かみちゃん 07/2/24(土) 17:37 発言
【46994】Re:条件つき列の並べ替え [46222]関連 さや 07/2/24(土) 18:41 お礼
【46995】Re:条件つき列の並べ替え [46222]関連 かみちゃん 07/2/24(土) 18:50 発言
【47005】Re:条件つき列の並べ替え [46222]関連 さや 07/2/24(土) 20:31 お礼
【47007】Re:条件つき列の並べ替え [46222]関連 かみちゃん 07/2/24(土) 21:39 発言
【47015】Re:条件つき列の並べ替え [46222]関連 さや 07/2/25(日) 4:38 質問
【47023】Re:条件つき列の並べ替え [46222]関連 かみちゃん 07/2/25(日) 15:01 発言
【47025】Re:条件つき列の並べ替え [46222]関連 さや 07/2/25(日) 18:20 お礼
【46991】Re:条件つき列の並べ替え [46222]関連 Hirofumi 07/2/24(土) 18:14 回答

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