[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『名前をつけた範囲以外の削除はできますか』(ひろ)
いつもお世話になっております
シートの中で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.