Excel VBA質問箱 IV

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

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


5612 / 13645 ツリー ←次へ | 前へ→

【49773】行の自動削除できますか? 無頼斎 07/6/21(木) 14:35 質問[未読]
【49775】Re:行の自動削除できますか? マクロマン 07/6/21(木) 15:02 発言[未読]
【49781】Re:行の自動削除できますか? Kein 07/6/21(木) 16:17 回答[未読]
【49849】Re:行の自動削除できますか? 無頼斎 07/6/24(日) 22:22 発言[未読]
【49850】Re:行の自動削除できますか? Kein 07/6/24(日) 22:59 回答[未読]
【49857】Re:行の自動削除できますか? 無頼斎 07/6/25(月) 12:22 発言[未読]
【49867】Re:行の自動削除できますか? Kein 07/6/26(火) 0:19 発言[未読]
【49871】Re:行の自動削除できますか? 無頼斎 07/6/26(火) 8:51 発言[未読]
【49854】Re:行の自動削除できますか? Mariko 07/6/25(月) 9:38 発言[未読]

【49773】行の自動削除できますか?
質問  無頼斎  - 07/6/21(木) 14:35 -

引用なし
パスワード
   しばらく振りに質問します。

列に例えば1か2が入っていると自動的に

その行は削除されるというマクロはできますか?

eg)
   A   B   C   D   E
1  1
2  3
3  1
4  2
5  3
6  2
7  1
8  4
9  5
10  3
11  2
・  ・
・  ・

上で、A列に入っている数字中1と2が入った行を自動的に削除したいのです。
できるでしょうか?よろしくお願いいたします。

【49775】Re:行の自動削除できますか?
発言  マクロマン  - 07/6/21(木) 15:02 -

引用なし
パスワード
   If
で条件分岐することになると思います。
なお、行削除は下から行います。

【49781】Re:行の自動削除できますか?
回答  Kein  - 07/6/21(木) 16:17 -

引用なし
パスワード
   作業列に入れた数式で判定し、処理するコードです。

Sub Del_R()
  On Error Resume Next
  With Range("A1", Range("A65536").End(xlUp)).Offset(, 255)
   .Formula = "=IF(OR($A1=1,$A1=2),1)"
   .SpecialCells(3, 1).EntireRow.Delete xlShiftUp
   .ClearContents
  End With
End Sub

【49849】Re:行の自動削除できますか?
発言  無頼斎  - 07/6/24(日) 22:22 -

引用なし
パスワード
   ▼Kein さん:
ありがとうございます。

A列に1、2そして、"数値なし"の場合にその行を自動削除するには、

どうしたらよいのでしょうか?

Keinさんの作っていただいた、マクロ中の

>.Formula = "=IF(OR($A1=1,$A1=2),1)"

を .Formula = "=IF(OR($A1=1,$A1=2,$A1=""),1)"に変えればよいのでしょうか?

でも、それではマクロが作動しませんでした。
よろしくご教示願います。


>Sub Del_R()
>  On Error Resume Next
>  With Range("A1", Range("A65536").End(xlUp)).Offset(, 255)
>   .Formula = "=IF(OR($A1=1,$A1=2),1)"
>   .SpecialCells(3, 1).EntireRow.Delete xlShiftUp
>   .ClearContents
>  End With
>End Sub

【49850】Re:行の自動削除できますか?
回答  Kein  - 07/6/24(日) 22:59 -

引用なし
パスワード
   値が無いところは 0 と考えればいいので

Sub Del_R2()
  On Error Resume Next
  With Range("A1", Range("A65536").End(xlUp)).Offset(, 255)
   .Formula = "=IF($A1<3,1)"
   .SpecialCells(3, 1).EntireRow.Delete xlShiftUp
   .ClearContents
  End With
End Sub

ただし、もし
>"数値なし"
の意味が文字列を入力したセルも含む、ということなら数式を

=IF(OR(ISTEXT($A1),$A1<3),1)

と、変更すれば良いでしょう。

【49854】Re:行の自動削除できますか?
発言  Mariko  - 07/6/25(月) 9:38 -

引用なし
パスワード
   ▼無頼斎 さん:
おはようございます。
オーソドックスなやり方ですが・・・

>例えば1か2そして「空き」の時、自動的に・・・
Sub Delite_Y()
 Dim i As Integer
 For i = Range("A65536").End(xlUp).Row To 1 Step -1
  If Cells(i, 1).Value = 1 Or Cells(i, 1).Value = 2 Or _
    Cells(i, 1).Value = "" Then
    Cells(i, 1).EntireRow.Delete
   End If
 Next
End Su

【49857】Re:行の自動削除できますか?
発言  無頼斎  - 07/6/25(月) 12:22 -

引用なし
パスワード
   ▼Kein さん:
ありがとうございます。

しかし、下のような場合(例えばですので、必ずしもこのような形にはなりません),

eg)
   A   B   C   D   E
1  1  
2  3
3  
4  2
5  3
6  
7  1
8  4
9  5
10  3
11  2
12
13
14
15
16
17
・  ・
・  ・

3番目と6番目の行は削除できたのですが、12行目〜最終行までは

削除できないようになってしまいました。B列〜K列には不要な

数値が入ってますので、是非削除したいのですが。。。できますでしょうか?


>値が無いところは 0 と考えればいいので
>
>Sub Del_R2()
>  On Error Resume Next
>  With Range("A1", Range("A65536").End(xlUp)).Offset(, 255)
>   .Formula = "=IF($A1<3,1)"
>   .SpecialCells(3, 1).EntireRow.Delete xlShiftUp
>   .ClearContents
>  End With
>End Sub
>
>ただし、もし
>>"数値なし"
>の意味が文字列を入力したセルも含む、ということなら数式を
>
>=IF(OR(ISTEXT($A1),$A1<3),1)
>
>と、変更すれば良いでしょう。

【49867】Re:行の自動削除できますか?
発言  Kein  - 07/6/26(火) 0:19 -

引用なし
パスワード
   >12行目〜最終行まで
には、実際にはどんな値があるのか ? それとも空白なのか ?
数値の 0 を含めて 3未満 という条件でいいのか ? それとも文字列を含むのか ?
そういう肝心なことは書かずに、ただうまくいかない、とだけ言われても答えようが
ないです。見てのとうり、数式はこれ以上簡単にできない程、単純なものなのだから
少しは自分で考えてみて下さい。提示したサンプルは、ヒントとしては充分だと
思いますが。

【49871】Re:行の自動削除できますか?
発言  無頼斎  - 07/6/26(火) 8:51 -

引用なし
パスワード
   Keinさん

ご指摘ありがとうございます。

A列には1〜3の数値と、空白のままのセルが混在しています。

文字列は含みません。

空白セルはシートの下方に多く、Keinさんの作成のマクロでは、

空白セルを0として扱われていましたが、それですと1〜3の値が

入った全てのセルの下に空白セルがあった場合には、その当該行は

削除されない状況が出てしまいます。

ということが真相です。


▼Kein さん:
>>12行目〜最終行まで
>には、実際にはどんな値があるのか ? それとも空白なのか ?
>数値の 0 を含めて 3未満 という条件でいいのか ? それとも文字列を含むのか ?
>そういう肝心なことは書かずに、ただうまくいかない、とだけ言われても答えようが
>ないです。見てのとうり、数式はこれ以上簡単にできない程、単純なものなのだから
>少しは自分で考えてみて下さい。提示したサンプルは、ヒントとしては充分だと
>思いますが。

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