- ベストアンサー
アクティブになっている行をマクロで削除したい
特定の文字の入っている行とそれ以下の行全部を削除したいのですが どうしたらよいでしょうか 例えば"小計"の入っている行から下の行を削除したいのですが 行の位置はいつも違っています セルの位置は検索で分かりますし行の削除はShift+スペースで消し それより下はShift+ctrl+方向キー+delで出来るのですが それだとマクロで実行するときいつも同じ行を消してしまいます どの位置にも関係なくアクティブセルの含まれている行とそれ以下の行を マクロで削除するにはどのように記述すればいいですか
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> どの位置にも関係なくアクティブセルの含まれている行とそれ以下の行を > マクロで削除するにはどのように記述すればいいですか (検索の部分は割愛してますが)上記の要求をそのままコードにすると以下のようになると思います。 うまくいきませんか・・・? Range(ActiveCell, ActiveCell.SpecialCells(xlLastCell)).EntireRow.Delete 意味:アクティブセルから使われたセル範囲内の最後のセルまでの行全体を削除
その他の回答 (3)
- shanglee
- ベストアンサー率43% (58/134)
No.1です。 > アクティブセルを含む行をショートカットキーでなくVBAで選択状態(反転状態)にするにはどうしたらいいんでしょうか こちらもこの要求をそのままコードで書くと、以下ようになります。 お試しくださいませ。 ActiveCell.EntireRow.Select 意味:アクティブセルを含む行全体を選択(反転状態)
お礼
ありがとうございますお礼が遅れました。 シンプルですね、最近VBAもといマクロに興味もったのでまだまだ初心者です。 なのでコードとかはよく分からないです。本借りて勉強しよっと。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 >特定の文字の入っている行とそれ以下の行全部を削除したいのですが 質問の意味が良く分かりません。何か、言葉だけですと、二重の意味が入っているようですが。 行の削除はShift+スペースで消し →? --行全体を削除 それより下はShift+Ctrl+方向キ(↓)+Delで →? --文字を見つけ削除した行の下の列のみをClear すること? (End プロパテイは、最下行から探すような仕方のほうがよい) 小計のある列を選択してから、マクロを実行するから、ショートカットを取り付けたほうが便利です。 '標準モジュール ' Sub SpecialCellsDelete() Dim i As Long On Error Resume Next i = 0 i = WorksheetFunction.Match("小計", ActiveCell.EntireColumn, 0) On Error GoTo 0 If i > 0 Then Cells(i, ActiveCell.Column).EntireRow.Delete Range(Cells(i, ActiveCell.Column), _ Cells(Rows.Count, ActiveCell.Column).End(xlUp)).ClearContents Else MsgBox "この列に「小計」はありません。", vbInformation End If End Sub
お礼
うひーん初心者なのでさっぱり意味わからないですがとにかくありがとうございます
- pkh4989
- ベストアンサー率62% (162/260)
こんな感じ? Sub 行削除() startRow = ActiveSheet.Cells.Find(What:="小計").Row With ActiveSheet.UsedRange lastRow = .Cells(.Count).Row End With ActiveSheet.Rows(startRow & ":" & lastRow).Delete End Sub
お礼
ありがとうございます、うまくいけました。 いろいろ応用させていただきます。
補足
ありがとうございます問題は解決しました あと一つ アクティブセルを含む行をショートカットキーでなくVBAで選択状態(反転状態)にするにはどうしたらいいんでしょうか