[[20190121110920]] 『名前をつけた範囲以外の削除はできますか』(ひろ) ページの最後に飛ぶ

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

 

『名前をつけた範囲以外の削除はできますか』(ひろ)

いつもお世話になっております
シートの中でA1〜D3までの範囲を残してあとは削除したいのですが
名前をつけた範囲以外を削除することはできますか
できればマクロでしたいです
よろしくおねがいします

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


お好きな方をどうぞ

Sub A1_D3範囲外削除()

    With Range(Cells(1, 1), ActiveSheet.UsedRange)
        .Offset(3).Delete
        .Offset(0, 4).Delete
    End With
End Sub

Sub A1_D3範囲外削除_行列ver()

    With Range(Cells(1, 1), ActiveSheet.UsedRange)
        .EntireRow.Offset(3).Delete
        .EntireColumn.Offset(0, 4).Delete
    End With
End Sub

行列削除の場合は、行の高さや列の幅のリセットできます。
(名無し) 2019/01/21(月) 11:23


ありがとうございますちなみに範囲に名前をつけてそれ以外を削除ってできますか
(ひろ) 2019/01/21(月) 11:57

別案で、名前定義した範囲を別シートにコピーしておき、一旦シート内を全部削除。 別シートにコピーしておいた範囲を元シートにコピーし直す、なんて方法はいかがでしょう? セル範囲は左上からに限定しなくても良いです。

名前定義は「消さない」と名付けた場合の例なぞ。

 Sub test()
    Dim wk As Worksheet
    Dim cw As String

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set wk = ActiveSheet
    cw = ThisWorkbook.Names("消さない").RefersTo

    With Worksheets.Add(after:=Sheets(Sheets.Count))
        Range("消さない").Copy .Range("A1")
        wk.Cells.Delete
        ThisWorkbook.Names("消さない").RefersTo = cw
        .Range("A1").CurrentRegion.Copy Range(cw)
        .Delete
    End With

    wk.Activate
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
 End Sub
(???) 2019/01/21(月) 14:48

あまり綺麗じゃないけど。

いきなり消えるのが怖かったら、DeleteをSelectに置き換えて確認して下さい。

 Sub 名前定義範囲外削除_行列ver()

    Dim rng As Range
    Set rng = Range("消さない")

    Range(rng(rng.Count).Offset(1), Cells(Rows.Count, 1)).EntireRow.Delete

    Range(rng(rng.Count).Offset(0, 1), Cells(1, Columns.Count)).EntireColumn.Delete

    If rng(1).Row > 1 Then
        Range(rng(1).Offset(-1), Cells(1, 1)).EntireRow.Delete
    End If

    If rng(1).Column > 1 Then
        Range(rng(1).Offset(0, -1), Cells(1, 1)).EntireColumn.Delete
    End If

End Sub
(名無し) 2019/01/21(月) 16:07


ありがとうございます
(ひろ) 2019/01/21(月) 17:26

コメント返信:

[ 一覧(最新更新順) ]


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