[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『名前をつけた範囲以外の削除はできますか』(ひろ)
いつもお世話になっております
シートの中で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
名前定義は「消さない」と名付けた場合の例なぞ。
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
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.