[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『列を削除(消滅)させたいです。』(サンドラブロッコリー)
こんにちわ。
11行目を右端から最終列を取得
最終行の右隣の列以降は
セルの色や罫線のクリアなどではなく列そのものを全て削除
というのは難しいでしょうか?
ネットの頼れる友達に聞いてもなかなかうまくいきません。
Sub DeleteColumns()
Dim LastColumn As Integer LastColumn = ActiveSheet.Cells(11, Columns.Count).End(xlToLeft).Column ' 11行目から最終列の列番号を取得
Columns(LastColumn + 1 & ":" & Columns.Count).Delete ' 最終行の右隣の列以降を全て削除 End Sub
< 使用 Excel:Microsoft365、使用 OS:Windows11 >
(abc) 2023/03/10(金) 06:11:38
Columns(LastColumn + 1 & ":" & Columns.Count)
例えば↓のようにすればよいということだったりしませんか?
Sub DeleteColumns_改() Dim bufRNG As Range
With ActiveSheet Set bufRNG = .Cells(11, .Columns.Count).End(xlToLeft).Offset(, 1) ' 11行目の最終列1列左の【セル】を取得 .Range(bufRNG, .Cells(11, .Columns.Count)).EntireColumn.Delete End With End Sub
(もこな2) 2023/03/10(金) 07:33:55
Rows("2:5").Select
↓のように列も【列番号】を組み合わせた【文字列】で操作可能と考えたとおもいますが、
Columns("1:3").Select
実際には↓のように【列文字】を組み合わせた【文字列】でないと操作できません。
Columns("A:C").Select
なので、「Rangeオブジェクト.EntireColumn」で列全体を指定する方法を回答したわけですが、Columnsプロパティに拘りたいということならば↓のようになるとおもいます。
Sub 別案() Dim 列文字 As String
列文字 = Split(ActiveSheet.Cells(11, Columns.Count).End(xlToLeft).Offset(, 1).Address, "$")(1) ActiveSheet.Columns(列文字 & ":XDF").Delete End Sub
※最終列は、必要に応じ調整してください。 (個人的には最大列である必要はないと感じます)
(もこな2) 2023/03/10(金) 12:39:24
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.