|
Isogai さん、こんにちわ。
>こんにちは、特定の列を削除したいと思って、いろいろと試してみましたが、うまくいかなくて、ここの掲示板へ投稿しました。
>
>Excelファイルの特定列(科目II、科目IV)
1行目のセルの内容について、科目IIまたは科目IVのものを変数にセットし、列全体を削除します。
該当セルを絞るのにFindメソッドを使う方法もありますが、今回は総当りで。
Sub test()
Dim r1 As Range, Cmax As Long, CC As Long
With Application.ActiveSheet '現在表示中のシート
Cmax = .Range("IV1").End(xlToLeft).Column 'データが入った列の一番右
For CC = 1 To Cmax '列方向に繰り返し
Select Case Trim(.Cells(1, CC).Value) '念のため前後の空白消去
Case "科目II", "科目IV" 'この文字がセルに入っていると削除対象
If r1 Is Nothing Then
Set r1 = .Cells(1, CC) '1つめのセルをセット
Else
Set r1 = Application.Union(r1, .Cells(1, CC)) 'セル追加
End If
End Select
Next
'ここで処理
If Not r1 Is Nothing Then
r1.EntireColumn.Delete '列全体を削除
Else
MsgBox "該当文字列なし", vbExclamation '該当の文字列がなかった
End If
End With
Set r1 = Nothing
End Sub
こんな感じです。
|
|