2016-10-06 2 views
0

아래 코드는 여러 명령 단추를 통해 실행됩니다. 선을 흘릴 수있는 방법이 있는지 알고 싶었습니다. 각 버튼은 특정 특성을 가진 플로우에서 작동합니다. 나는 과도한 쓰레기를 차단하는 방법이 있다고 확신한다.스트림 긴 코드 라이닝

Private Sub CommandButton1_Click() 
ActiveSheet.Unprotect "[email protected]" 
Range("A17").Select 
    ActiveCell.FormulaR1C1 = "Research" 
    Sheets("Questionnaire").Select 
    Sheets("Questionnaire").Range("A1").Select 
    Sheets("Analyst Score").Select 
    Sheets("Questionnaire").Select 
ActiveSheet.Protect "[email protected]" 
End Sub 

Private Sub CommandButton10_Click() 
ActiveWorkbook.Unprotect "[email protected]" 
Sheets("Investigation Comments Input").Visible = False 
Sheets("Analyst Score").Visible = False 
Sheets("Questionnaire").Select 
ActiveWorkbook.Protect "[email protected]" 
End Sub 

Private Sub CommandButton11_Click() 
ActiveWorkbook.Unprotect "[email protected]" 
Sheets("Report Template").Visible = True 
Sheets("Report Template").Select 
Sheets("Report Template").Range("B4").Select 
ActiveSheet.Protect "[email protected]" 
End Sub 

Private Sub Commandbutton2_Click() 
ActiveSheet.Unprotect "[email protected]" 
Range("A17").Select 
    ActiveCell.FormulaR1C1 = "Quality Check" 
    Sheets("Questionnaire").Select 
    Sheets("Questionnaire").Range("A1").Select 
    Sheets("Analyst Score").Select 
    Sheets("Questionnaire").Select 

Sheets("Questionnaire").Range("W1").Select 
    ActiveCell.Value = Time 
Sheets("Questionnaire").Range("A1").Select 

ActiveSheet.Protect "[email protected]" 
End Sub 
Private Sub CommandButton3_Click() 
ActiveSheet.Unprotect "[email protected]" 
Range("A17,B17,B1,C1,B3:B5,B7,H19:I127,O19:O127,K19:K127,L19:L127").Select 
    Range("H19").Activate 
    Selection.ClearContents 
Sheets("Questionnaire").Select 
Sheets("Questionnaire").Range("W1:X1,Z1:AE1").Select 
ActiveSheet.Unprotect "[email protected]" 
Selection.ClearContents 
Sheets("Analyst Score").Select 
ActiveSheet.Protect "[email protected]" 
End Sub 
Private Sub CommandButton4_Click() 
ActiveSheet.Unprotect "[email protected]" 
ActiveSheet.Unprotect "[email protected]" 
Range("I19:I127").Select 
    Range("I19").Activate 
    Selection.ClearContents 
    Range("N7").Select 
ActiveSheet.Protect "[email protected]" 
End Sub 
Private Sub CommandButton5_Click() 
ActiveSheet.Unprotect "[email protected]" 
ActiveWindow.ScrollRow = 9 
Range("A19").Select 
ActiveWindow.FreezePanes = True 
ActiveSheet.Protect "[email protected]" 
End Sub 
Private Sub CommandButton6_Click() 
ActiveSheet.Unprotect "[email protected]" 
ActiveWindow.FreezePanes = False 
    ActiveWindow.SmallScroll Down:=-33 
ActiveSheet.Protect "[email protected]" 
End Sub 
Private Sub CommandButton7_Click() 
ActiveSheet.Unprotect "[email protected]" 
ActiveSheet.Unprotect "[email protected]" 
Range("H19:H127").Select 
    Range("H19").Activate 
    Selection.ClearContents 
    Range("N7").Select 
ActiveSheet.Protect "[email protected]" 
End Sub 
Private Sub CommandButton8_Click() 
ActiveSheet.Unprotect "[email protected]" 
Rows("17:127").Select 
    Selection.EntireRow.Hidden = True 
    Range("H5").Select 
Range("Z:Z,AA:AA,AB:AB").Select 
    Range("AB9").Activate 
    Selection.EntireColumn.Hidden = True 
    Range("M14").Select 
ActiveSheet.Protect "[email protected]" 
End Sub 
Private Sub CommandButton9_Click() 
ActiveSheet.Unprotect "[email protected]" 
Rows("17:127").Select 
    Selection.EntireRow.Hidden = False 
    Range("H5").Select 
    Range("Z:Z,AA:AA,AB:AB").Select 
    Range("AB9").Activate 
    Selection.EntireColumn.Hidden = False 
    Range("M14").Select 
ActiveSheet.Protect "[email protected]" 
End Sub 
Private Sub DEWS_Click() 
ActiveSheet.Unprotect "[email protected]" 
Range("A17").Select 
    ActiveCell.FormulaR1C1 = "Dews" 
    Sheets("Questionnaire").Select 
Sheets("Questionnaire").Range("W1").Select 
    ActiveSheet.Unprotect "[email protected]" 
    ActiveCell.Value = Time 
    Range("W2").Value = Date 
Sheets("Questionnaire").Range("A1").Select 
ActiveSheet.Protect "[email protected]" 
End Sub 
Private Sub Worksheet_Calculate() 
If Range("E5").Value < 1 Then Me.Shapes("CommandButton2").Visible = False 
If Range("E5").Value > 1 Then Me.Shapes("CommandButton2").Visible = True 
End Sub 
+2

'.Select'를 모두 없애면 시작할 첫 번째 장소가됩니다. [this] (http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros)를 읽어보십시오. – Kyle

+3

코드가 작동하면 질문은 여기에 게시하지 말고'http : // codereview.stackexchange.com /' – user3598756

답변

0

코드를 단축하는 방법은 여러가지가 :

1) 카일의 코멘트로 시작하고 SELECT 문을 줄일 수 있습니다.

2) 시각적으로 을 찾고있는 경우 코드를 어둡게 만드는 대신 공백을 잘 활용하십시오.

3) commandbutton4, commandbutton7에서 같은 시트를 두 번 보호 해제합니다.

위 항목 이외에이 버튼 하나 하나 하나씩 필요하면 더 이상 할 일이 없습니다. 버튼을 결합 할 수 없습니까?