[[20150626080847]] 『行の削除』(さんま) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『行の削除』(さんま)

指定した列のセルが空白の場合行を削除するVBAです。

これはD列10行に適用になっていますが、この式をVBAを実行すると、列を選択でき、
かつ適用する行数も入力されている最終行までに適用したいです。

Sub 行の削除()
Cells(1, 4).Resize(10).SpecialCells(xlCellTypeBlanks).EntireRow.Delete

 End Sub

宜しくお願い致します。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 >指定した列のセル
 とは選択したセル?

 >適用する行数も入力されている最終行までに
 とは指定した列とやらの最終行?

(とらねこ) 2015/06/26(金) 08:29


とらねこ様、返信ありがとうございます。
そしてわかりずらい説明で申し訳ございません。

指定した列のセル ↑Sub 行の削除()
Cells(1, 4).Resize(10).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    ↑この列です。

 >適用する行数も入力されている最終行までに
これはA列の最終行です。

宜しくお願い致します。

(さんま) 2015/06/26(金) 08:55


 >↑この列です
 ってD列ですよね?
 D列が全て空白だったら?それともD1セルが空白だったら?

 >これはA列の最終行です。
 了解しました
(とらねこ) 2015/06/26(金) 08:58

とらねこ様、早々の返信ありがとうございます。

 >↑この列です
 ってD列ですよね?
 D列が全て空白だったら?それともD1セルが空白だったら?

↑すみません。。的外れの事を言ってしまいました。。

D1セルが空白だったら1行を削除。という意味でした。

宜しくお願い致します。

(さんま) 2015/06/26(金) 09:06


 >D1セルが空白だったら1行を削除。
 え?1行ですか?
 A列最終行は何処へ…

 間違えました 取り消します 2015/6/26 9:13
(とらねこ) 2015/06/26(金) 09:12

とらねこ様、返信ありがとうございます。

私の説明で大丈夫だったでしょうか???

申し訳ございません。

(さんま) 2015/06/26(金) 09:17


   A   B C   D
 1 あ
 2          え
 3
 4 い       お
 5 う
 6

   A   B C   D
 1          え
 2 い       お
 3
 4
 5
 6

 例えば上の状態なら結果がこうなるのがいいのですか?
 D列が空白ならその行が削除される
 D列に入力があればその行は削除しない
 これをA列の最終行まで
 ということ?
(とらねこ) 2015/06/26(金) 09:28

 Sub 行の削除1()
     If Range("D1") = "" Then
         Range("A1").Resize(Range("A" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
     Else
         MsgBox "D1は入力されています"
     End If
 End Sub

 ちなみにこういうことではないのですよね?

(とらねこ) 2015/06/26(金) 09:31


とらねこさん、返信ありがとうございます。

例えば上の状態なら結果がこうなるのがいいのですか?

 D列が空白ならその行が削除される
 D列に入力があればその行は削除しない
 これをA列の最終行まで
 ということ?
↑やりたいことはまさにこういうことです。

ただ、いつも空白を参照する列がD列と限らないのでVBAを実行したら参照する列を選びたいのです。

宜しくお願い致します。
(さんま) 2015/06/26(金) 09:42


 >ただ、いつも空白を参照する列がD列と限らないのでVBAを実行したら参照する列を選びたいのです。 
 条件は最初に全て書いてください;;
 参照する列はどうやって選ぶのですか?
 選択したセルがある列?列番号を手入力しますか?

(とらねこ) 2015/06/26(金) 09:53


とらねこ様、返信ありがとうございました。

これはD列10行に適用になっていますが、この式をVBAを実行すると、列を選択でき、
かつ適用する行数も入力されている最終行までに適用したいです。
↑ごめんなさい。。。この説明ではわかりずらかったですね。。すみません。

参照する列はどうやって選ぶのですか?

 選択したセルがある列?列番号を手入力しますか?
↑選択したセルがある列でお願い致します。

すみませんが宜しくお願い致します。

(さんま) 2015/06/26(金) 09:58


 あぁ書いてあったのですね申し訳ない

 Sub 行の削除2()
     Dim i As Long, Sel As Long
     Sel = Selection.Column
     For i = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1
         If Cells(i, Sel) = "" Then
             Cells(i, 1).EntireRow.Delete
         End If
     Next
 End Sub

 こんな感じだろうか
 削除するときに列の確認とかは入れてないのでお気をつけて
(とらねこ) 2015/06/26(金) 10:21

とらねこ様、返信ありがとうございます。

こちらこそ、説明が下手ですみませんでした。

ただ今試したところ、思った通りに実行できました!!!!

すごく助かりました!!!

早々に解決有難うございました!!!!

(さんま) 2015/06/26(金) 10:25


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.