Excel VBA質問箱 IV

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

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


70688 / 76738 ←次へ | 前へ→

【10552】Re:いらない項目列を全て削除するには?
回答  Asaki  - 04/1/31(土) 14:53 -

引用なし
パスワード
   こんにちは。

コードにコメント付けてみます。
あまり上手く説明できていないかもしれませんが。。。

Sub test()

  Dim rngFind   As Range
  Dim rngLoop   As Range

  '1行目のA列から値が入っている最後の列までループ
  For Each rngLoop In Range("A1", Cells(Columns.Count).End(xlToLeft))
    Select Case rngLoop.Value
      Case "col1", "col3", "col4", "col8"   '←とりあえず 消したくない項目名を羅列
      
      'セルの値が、上の消したくない項目名に一致しない場合
      Case Else
        'Range型の変数に1行目のセルのRangeを格納
        If rngFind Is Nothing Then
          'まだ1つも消す項目を変数に格納していない場合は
          'ループしているセルの情報をそのまま変数に格納
          Set rngFind = rngLoop
        Else
          '既に消す項目を変数に格納している場合は
          'Unionを使って変数に格納
          Set rngFind = Union(rngFind, rngLoop)
        End If
    End Select
  Next rngLoop

  'rngFindが空でない場合は消差なければならない列がある
  If Not rngFind Is Nothing Then
    'EntireColumn を使って、rngFindに格納されたセルの列全体を削除
    rngFind.EntireColumn.Delete Shift:=xlToLeft
    '念の為オブジェクト変数を開放
    Set rngFind = Nothing
  End If

End Sub

0 hits

【10538】いらない項目列を全て削除するには? ギン 04/1/30(金) 19:38 質問
【10544】Re:いらない項目列を全て削除するには? Asaki 04/1/30(金) 20:24 回答
【10547】いらない項目列を全て削除するには? ギン 04/1/30(金) 20:52 お礼
【10551】いらない項目列を全て削除するには? ギン 04/1/31(土) 9:34 質問
【10552】Re:いらない項目列を全て削除するには? Asaki 04/1/31(土) 14:53 回答
【10559】いらない項目列を全て削除するには? ギン 04/2/1(日) 20:33 お礼
【10560】Re:いらない項目列を全て削除するには? Asaki 04/2/1(日) 22:47 回答
【10577】いらない項目列を全て削除するには? ギン 04/2/2(月) 19:39 お礼
【10580】Re:いらない項目列を全て削除するには? Asaki 04/2/2(月) 21:32 回答
【10582】全て解決しました。有難うございました。 ギン 04/2/2(月) 22:40 お礼

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