ファイルオープン時のマクロが一部実行されない
いつも回答して頂き、ありがとうございます。感謝感謝です。
ファイルオープン時にApplication.Runで3つのマクロを実行させているのですが、最後のマクロだけ実行されません。どうしてでしょうか?もしかして、前の2つで『一覧シート』を除外するマクロを実行しているからでしょうか?御指導の程宜しくお願いいたします。
1番目に実行するマクロ
Sub 特定のシート以外の最終履歴と次回予定日を算出する()
Dim ws As Worksheet
For Each ws In Worksheets
If ws.Name <> "一覧" Then
If ws.Name <> "メニュー" Then
Dim c As Integer
c = 3
Do While ws.Cells(2, c).Value <> ""
With ws.Cells(6, c)
.FormulaR1C1 = "=MAX(R8C:R10000C)"
If .Value = 0 Then
.Value = "履歴無し"
ws.Cells(7, c).ClearContents
Else
.Value = .Value
ws.Cells(7, c) = DateAdd("d", ws.Cells(5, c), DateAdd("m", ws.Cells(4, c), DateAdd("yyyy", ws.Cells(3, c), ws.Cells(6, c))))
End If
End With
c = c + 1
Loop
End If
End If
Next
End Sub
2番目に実行するマクロ
Sub 期限の未達と到達を色で分ける()
Dim ws As Worksheet
For Each ws In Worksheets
If ws.Name <> "一覧" Then
If ws.Name <> "メニュー" Then
Dim c As Long
Dim res As Variant
For c = 3 To ws.Cells(7, Columns.Count).End(xlToLeft).Column
If IsDate(ws.Cells(7, c)) Then
If ws.Cells(7, c) > Date Then
res = 8
Else
res = 3
End If
Else
res = xlNone
End If
ws.Cells(7, c).Interior.ColorIndex = res
Next c
End If
End If
Next
End Sub
3番目に実行するマクロ
Sub 各シートの情報を一覧へ転記する()
Dim d As Integer
Dim retu As Integer
d = 3
Do While Cells(d, 2).Value <> ""
With Worksheets(Worksheets("一覧").Cells(d, 2).Value)
.Activate
retu = .Range("IV7").End(xlToLeft).Column
.Range(Cells(7, 3), Cells(7, retu)).Copy
End With
With Worksheets("一覧")
.Activate
Cells(d, 3).PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End With
d = d + 1
Loop
End Sub
お礼
何とかできました。ありがとうございました。
補足
ご教示のとおり修正して実行しましたが、エラーが生じます。 ちなみにセルAB3には=EDATE(E2,-2) AB4には2012/12/20と入力されています。 Sub 処理済の確認0() Dim AB3 As Date Dim AB4 As Date AB3 = Range("AB3") AB4 = Range("AB4") 'ここでエラー→型が一致しません。 Sheets("計算").Select If AB3 = AB4 Then MsgBox "データは処理済みです。" Exit Sub End If If AB3 <> AB4 Then マクロ2の実行 End If End Sub