Hi, I have the following code which is supposed to export the pages in a workbook to pdf and attach it to an email. This works exactly as it should but takes far too long. it is also my first venture into macros and I'm pretty sure it is not as efficient as it should be - most of it has come from googling and copying other peoples code.

Is there anything I can do to make the following quicker or more efficient:


Private Sub CommandButton5_Click()
'send for review
'autohide unused sheets on profit and loss
If Sheets("Validation").Range("validation") = -1 Then
MsgBox "Validation failed - please review controls.", vbExclamation
Sheets("validation").Visible = True
Unload Me
Sheets("validation").Select
menuform.Hide
Exit Sub
End If
Application.ScreenUpdating = False
Dim c As Range
Dim d As Range
Dim e As Range
Dim f As Range
Dim g As Range

'this hides any unused rows
For Each c In Sheets("management accounts").Range("F1:F86")
    If c.Value = "0" Then
        c.EntireRow.Hidden = True
    Else
        c.EntireRow.Hidden = False
    End If
'on balance sheet
Next
For Each d In Sheets("balance sheet").Range("F1:shareholderfunds")
    If d.Value = "0" Then
        d.EntireRow.Hidden = True
    Else
        d.EntireRow.Hidden = False
    End If
Next
'on management report
For Each e In Sheets("management report").Range("n1:lastrowreport")
    If e.Value = "0" Then
        e.EntireRow.Hidden = True
    Else
        e.EntireRow.Hidden = False
    End If
Next
'on director 1 personal tax projection
For Each f In Sheets("Tax projection - Director 1").Range("k8:ptp1lastrow")
    If f.Value = "0" Then
        f.EntireRow.Hidden = True
    Else
        f.EntireRow.Hidden = False
    End If
Next
'on director 2 personal tax projection
For Each g In Sheets("Tax projection - Director 2").Range("k8:k89")
    If g.Value = "0" Then
        g.EntireRow.Hidden = True
    Else
        g.EntireRow.Hidden = False
    End If
Next
'if two directors are to receive personal tax projection
If Sheets("input sheet").Range("b47") = 2 Then
    Sheets(Array("Cover Sheet", "Management Report", "Management Accounts", _
        "Balance Sheet", "Tax projection - Director 1", "Tax projection - Director 2")). _
        Select
    Selection.Activate
    Create_PDF
End If
'if one director is to receive a personal tax projection
If Sheets("input sheet").Range("b47") = 1 Then
    Sheets(Array("Cover Sheet", "Management Report", "Management Accounts", _
        "Balance Sheet", "Tax projection - Director 1")). _
        Select
    Selection.Activate
    Create_PDF
End If
If Sheets("input sheet").Range("b47") = 0 Then
    Sheets(Array("Cover Sheet", "Management Report", "Management Accounts", _
        "Balance Sheet")). _
        Select
    Selection.Activate
    Create_PDF
End If
Sheets("Management Accounts").Select
Rows("1:86").Select
Range("A72").Activate
Selection.EntireRow.Hidden = False
Range("a1").Select
Sheets("Balance Sheet").Select
Rows("1:118").Select
Range("B72").Activate
Selection.EntireRow.Hidden = False
Range("a1").Select
Sheets("management report").Select
Rows("1:119").Select
Range("B60").Activate
Selection.EntireRow.Hidden = False
Sheets("Tax projection - Director 1").Select
Rows("1:89").Select
Range("ptp1lastrow").Activate
Selection.EntireRow.Hidden = False
Range("a1").Select
Sheets("Tax projection - Director 2").Select
Rows("1:89").Select
Range("k89").Activate
Selection.EntireRow.Hidden = False
Range("a1").Select
Sheets("TB").Select
Range("a4").Select
Application.ScreenUpdating = True
Unload Me
End Sub
in particular this bit I'm sure can be done better, or quicker:

Dim c As Range
Dim d As Range
Dim e As Range
Dim f As Range
Dim g As Range

'this hides any unused rows
For Each c In Sheets("management accounts").Range("F1:F86")
    If c.Value = "0" Then
        c.EntireRow.Hidden = True
    Else
        c.EntireRow.Hidden = False
    End If
'on balance sheet
Next
For Each d In Sheets("balance sheet").Range("F1:shareholderfunds")
    If d.Value = "0" Then
        d.EntireRow.Hidden = True
    Else
        d.EntireRow.Hidden = False
    End If
Next
'on management report
For Each e In Sheets("management report").Range("n1:lastrowreport")
    If e.Value = "0" Then
        e.EntireRow.Hidden = True
    Else
        e.EntireRow.Hidden = False
    End If
Next
'on director 1 personal tax projection
For Each f In Sheets("Tax projection - Director 1").Range("k8:ptp1lastrow")
    If f.Value = "0" Then
        f.EntireRow.Hidden = True
    Else
        f.EntireRow.Hidden = False
    End If
Next
'on director 2 personal tax projection
For Each g In Sheets("Tax projection - Director 2").Range("k8:k89")
    If g.Value = "0" Then
        g.EntireRow.Hidden = True
    Else
        g.EntireRow.Hidden = False
    End If
Next
thanks in advance.