- ベストアンサー
エクセルのVBAについて
先程も質問させていただきました。 列を上から順に調べていって、セルがFという文字列でない場合にそのセルの行を削除するプログラムはどうすればよいのでしょうか?よろしくお願いします。 よろしくおねがいします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
先ほどの質問とは、No993782の補足欄にされた追加質問のことですね。 それで質問内容は微妙に変わっているようですが、要はA列のセルの文字列中にFかGを含んでいない行を全て削除すればよいということですか? 先ほどの補足質問では上から順に見ていって、「FとGの間の行を削除」するのことでしたので、逆に上からみてGとFの間や、FとFの間、GとGの間となるものはわざと削除しないようにした回答だったのですが、質問はそうではないんですね? それならVBAはずっと簡単になります。 Sub TEST05() X = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row For n = X To 2 Step -1 If Cells(n, 1).Value = Replace(Cells(n, 1).Value, "F", "") _ And Cells(n, 1).Value = Replace(Cells(n, 1).Value, "f", "") _ And Cells(n, 1).Value = Replace(Cells(n, 1).Value, "G", "") _ And Cells(n, 1).Value = Replace(Cells(n, 1).Value, "g", "") Then Rows(n).Delete Next End Sub
その他の回答 (1)
- bec
- ベストアンサー率29% (151/507)
現在アクティブな(選択している)セルから下で値が "F" 以外の行を削除します。 大文字小文字は関係ありませんが、全角だと削除してしまいます。 途中空白行があると終了します。 Sub Sumple() Do While ActiveCell <> "" With ActiveCell If .Value = "F" Or .Value = "f" Then ActiveCell.Offset(1, 0).Activate Else: ActiveCell.EntireRow.Delete End If End With Loop End Sub
お礼
ありがとうございます。マナーがなっておりませんでした。プログラムのほうは参考になりました。このプログラムは列の最終セルを調べるプログラムを書いていらっしゃっておりますが。行の最終セルを調べる関数、そして今度は列を消す関数はないのでしょうか?調べてみたのですが列しかのっていませんでした。もししっていたらお願いします。いったん締め切りまして再度質問しなおします。ありがとうございました