Excel VBA質問箱 IV

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

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


13224 / 76733 ←次へ | 前へ→

【69015】Re:行の削除(大量)
回答  UO3  - 11/5/10(火) 13:35 -

引用なし
パスワード
   ▼列行 さん:

私も、kanabunさん同様フィルター処理がいいんじゃないかと思ったんですが・・・
別案です。
行や列の削除、挿入といった処理は処理コストが結構大きくなりますので
不要なものを下においやってクリアします。

Sub Sample()
  Dim myA As Range
  Dim myW As Range
  
  With Worksheets("Sheet1") '<== 実際のシート名に
  
    Set myA = .UsedRange
    Set myW = myA.Columns(1).Resize(myA.Rows.Count - 1).Offset(1, myA.Columns.Count)
  
    myW.Formula = "=IF(OR(D1=""ABC"",G1=0,P1=""""),1,0)"
    myW.Value = myW.Value
    myW.Offset(-1).Cells(1).Value = "Dummy"
    If WorksheetFunction.CountIf(myW, 1) > 0 Then
    
      .Cells.Sort Key1:=.Columns(myW.Column), Order1:=xlAscending, _
        Header:=xlYes, OrderCustom:=1, MatchCase:=False, _
        Orientation:=xlTopToBottom, _
        SortMethod:=xlPinYin, DataOption1:=xlSortNormal
  
      .Range(myW.Cells(WorksheetFunction.Match(1, myW, 0)), _
              myW.Cells(myW.Cells.Count)).EntireRow.ClearContents
      
    End If
    
  End With

  myW.EntireColumn.ClearContents
  
  Set myA = Nothing
  Set myW = Nothing
  
End Sub

3 hits

【69012】行の削除(大量) 列行 11/5/10(火) 11:54 質問
【69013】Re:行の削除(大量) kanabun 11/5/10(火) 12:57 発言
【69014】Re:行の削除(大量) 列行 11/5/10(火) 13:22 回答
【69015】Re:行の削除(大量) UO3 11/5/10(火) 13:35 回答
【69016】Re:行の削除(大量) Abebobo 11/5/10(火) 14:15 発言
【69018】Re:行の削除(大量) 列行 11/5/10(火) 16:40 お礼
【69019】Re:行の削除(大量) Abebobo 11/5/10(火) 19:04 発言
【69021】Re:行の削除(大量) UO3 11/5/10(火) 21:16 発言
【69026】Re:行の削除(大量) Abebobo 11/5/10(火) 23:18 発言
【69017】Re:行の削除(大量) 列行 11/5/10(火) 16:38 お礼
【69029】Re:行の削除(大量) 列行 11/5/11(水) 10:11 お礼

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