回答編集履歴

1

コード追記

2022/12/08 06:33

投稿

hatena19
hatena19

スコア33782

test CHANGED
@@ -10,3 +10,27 @@
10
10
  LastClm = Worksheets(i).Cells(1,Columns.Count).End(xlToLeft).Column
11
11
  ```
12
12
 
13
+
14
+ ---
15
+ どうせ削除するときに最終列からループするので、
16
+ Findで探して配列に格納してなどと面倒なことをせずとも、
17
+ ループするときに1行目の値を確認すればすみます。
18
+ そうすれば下記のようなシンプルなコードになります。
19
+
20
+ ```vba
21
+ Public Sub test()
22
+ Dim i As Long
23
+ For i = Worksheets("Sheet1").Next.Index To Worksheets.Count
24
+ With Worksheets(i)
25
+ Dim j As Long
26
+ For j = .Cells(1, Columns.Count).End(xlToLeft).Column To 1 Step -1
27
+ Select Case .Cells(1, j).Value
28
+ Case "りんご", "ばなな"
29
+ Case Else
30
+ .Columns(j).Delete
31
+ End Select
32
+ Next
33
+ End With
34
+ Next
35
+ End Sub
36
+ ```