[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『任意の複数シートの処理』(MARU)
以下の3つの処理を一つにしたい。 シートAとBの処理は、同じ(F1000〜AJ1000までの間で、0またはXの値の列を削除) シートCは、(E1000〜AI1000までの間で、0またはXの値の列を削除)
'シートAの処理 Sub Sample() Dim c As Range Dim r As Range
For Each c In Sheets("A").Range("F1000").CurrentRegion.Rows(1).Cells If c.Value Like 0 Or c.Value Like "X" Then If r Is Nothing Then Set r = c Else Set r = Union(r, c) End If End If Next
'Oまたは、Xの列を削除 If Not r Is Nothing Then r.EntireColumn.Delete
End Sub
'シートBの処理 Sub Sample() Dim c As Range Dim r As Range
For Each c In Sheets("B").Range("F1000").CurrentRegion.Rows(1).Cells If c.Value Like 0 Or c.Value Like "X" Then If r Is Nothing Then Set r = c Else Set r = Union(r, c) End If End If Next
'Oまたは、Xの列を削除 If Not r Is Nothing Then r.EntireColumn.Delete
End Sub 'シートCの処理 Sub Sample() Dim c As Range Dim r As Range
For Each c In Sheets("C").Range("E1000").CurrentRegion.Rows(1).Cells If c.Value Like 0 Or c.Value Like "X" Then If r Is Nothing Then Set r = c Else Set r = Union(r, c) End If End If Next
'Oまたは、Xの列を削除 If Not r Is Nothing Then r.EntireColumn.Delete
End Sub
< 使用 Excel:Excel2010、使用 OS:Windows7 >
Sub Sample() Dim c As Range Dim r As Range Dim ic As Long
If ActiveSheet.Name <> "C" Then ic = 1 End If
For Each c In ActiveSheet.Range("E1000").Offset(0, ic).CurrentRegion.Rows(1).Cells If c.Value Like 0 Or c.Value Like "X" Then If r Is Nothing Then Set r = c Else Set r = Union(r, c) End If End If Next
'Oまたは、Xの列を削除 If Not r Is Nothing Then r.EntireColumn.Delete End Sub (???) 2014/12/08(月) 13:29
ありがとうございます。 確認してみましたところ、 シートCのみ処理され、A,Bは何も処理されません。
(MARU) 2014/12/08(月) 14:57
横から失礼します。 ???さんから素晴らしいコードが提示されることはわかっているのですが、 勉強を兼ねて 自分なりに考えてみました。
Sub Sample1()
Dim ws As Worksheet Dim c As Long, i As Long
For Each ws In Sheets(Array("A", "B", "C")) If ws.Name <> "C" Then c = 6 Else c = 5 End If For i = c + 30 To c Step -1 If ws.Cells(1000, i) Like 0 Or ws.Cells(1000, i) Like "X" Then ws.Columns(i).Delete Next Next
End Sub (se_9) 2014/12/08(月) 15:47
私の提案も、Sheets(Array("A", "B", "C"))として、順番にシートを指定することだったので、
一気削除がお好みであれば、この部分を応用して頂けたら、と思います。
(???) 2014/12/08(月) 16:09
???さん se_9さん 丁寧な説明をありがとうございます。 提示いただいた内容にて同時(一気)削除ができました。 大変勉強になりました。 ありがとうございました。 (MARU) 2014/12/08(月) 23:13
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.