次のコードを使用してください。マクロを実行してレベルを選択します。このコードは、
Sub Choose()
l = InputBox(Prompt:="Enter the level you want", Title:="Level Selection")
If l = 1 Then
Call Level1
ElseIf l = 2 Then
Level2
ElseIf l = "" Then
Else
MsgBox "Incorrect entry.", vbInformation, "Incorrect"
End If
End Sub
Sub Level1()
Application.ScreenUpdating = False
On Error Resume Next
Blad1.Activate
Blad1.Cells.Find(What:="C12", After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
i = ActiveCell.Column
Blad1.Columns(i).Delete
Blad2.Activate
Blad2.Cells.Find(What:="C22", After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
i = ActiveCell.Column
Blad2.Columns(i).Delete
Blad3.Activate
Blad3.Cells.Find(What:="C32", After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
i = ActiveCell.Column
Blad3.Columns(i).Delete
Blad1.Activate
Application.ScreenUpdating = True
End Sub
Sub Level2()
Application.ScreenUpdating = False
On Error Resume Next
Blad1.Activate
Blad1.Cells.Find(What:="C11", After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
i = ActiveCell.Column
Blad1.Columns(i).Delete
Blad1.Cells.Find(What:="C13", After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
i = ActiveCell.Column
Blad1.Columns(i).Delete
Blad2.Activate
Blad2.Cells.Find(What:="C21", After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
i = ActiveCell.Column
Blad2.Columns(i).Delete
Blad2.Cells.Find(What:="C22", After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
i = ActiveCell.Column
Blad2.Columns(i).Delete
Blad3.Activate
Blad3.Cells.Find(What:="C33", After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
i = ActiveCell.Column
Blad3.Columns(i).Delete
Blad3.Cells.Find(What:="C34", After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
i = ActiveCell.Column
Blad3.Columns(i).Delete
Blad3.Cells.Find(What:="C35", After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
i = ActiveCell.Column
Blad3.Columns(i).Delete
Blad1.Activate
Application.ScreenUpdating = True
End Sub
くださいsee the file
列ヘッダは、常に各シートの最初の行にあるように、マクロつもりです含めた条件に該当する列全体を削除しますか? – dash
VBAはVB6ではありません。間違った質問。 – Bob77
ハイダッシュ! いいえ、彼らは第6列になります。 あなたが私を助けることを願っています。 よろしくお願いします –