Excel VBA質問箱 IV

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

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


50017 / 76732 ←次へ | 前へ→

【31612】Re:行を削除
回答  かみちゃん  - 05/11/27(日) 7:58 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>Forステートメントと
>If文で
>☆ではない行を削除したいのですが、

For〜Nextを必ず使わないといけないのですか?
オートフィルタを使ったり、数式を埋め込んで対象行を一括削除するなど方法は
いろいろあるのですが・・・

>削除される行と削除されない行が
>できてしまいます。

For〜Nextを使って行を削除する場合は、下の行から順番に削除すれば、うまくいきます。
行を削除したら、上に詰められるからです。
もちろん、上から順番に削除する場合もできますが、ややこしくなりますので。

下から順番に削除する場合は、以下のような感じでできます。

Sub test()
 Dim r As Long, 銘柄数 As Long
 
 With Workbooks("×××.xls").Worksheets(2)
  銘柄数 = .UsedRange.Rows.Count
  '削除対象行を最下行からチェックする。
  For r = 銘柄数 To 1 Step -1
   With .Cells(r, 6)
    'セルの値が☆ではない場合
    If .Value <> "☆" Then
     'そのセルが含まれる行全体を削除する。
     .EntireRow.Delete
    End If
   End With
  Next r
 End With
End Sub
0 hits

【31610】行を削除 ケメ 05/11/27(日) 3:38 質問
【31612】Re:行を削除 かみちゃん 05/11/27(日) 7:58 回答
【31774】Re:行を削除 ケメ 05/11/29(火) 22:59 お礼

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