2

ブックを開いたり、さまざまなワークシートを開いたりするためのイベントをトリガーするためのエレガントなソリューションを探しています。ワークシートごとに個別の操作は必要ありません。すべて同じメソッドをトリガーします。

イベントを使用できることはわかってい Workbook_Activateますが、これが「公式の方法」であるかどうかはわかりません。おそらく、1つのイベントでこれを行う方法があります。Workbook_OpenWorkbook_SheetActivate

私はまた、私がコードを置いたこの問題に関連があるかどうか疑問に思いました。これで、すべてのコードが「モジュール」ではなく「ThisWorkbook」内にあります。

4

2 に答える 2

1

これは、マネージャーが使用するレポートが常に時刻に基づいて正しいタブで開かれるようにするために、しばらく前に開発したコードです。このコードは、VBAの「ThisWorkbook」モジュールに格納されています。

Sub Workbook_Open()

'   Set The Office
Dim begin As String
Dim myNum As String
Dim myNum1 As String
Dim TheDate As String

'   Set Date
    TheDate = Format(DateTime.Now(), "mm-dd-yy")
    Sheets("MORNING").Range("H3").Value = TheDate
    Sheets("AFTERNOON").Range("G3").Value = TheDate
    'Sheets("EVENING").Range("G3").Value = TheDate

'   Select Sheet Based on Time of Day
    If Time >= 0.1 And Time < 0.5 Then
    Sheets("MORNING").Select
    Range("A53").Value = "Report completed by:"
    Range("C53").Value = Application.UserName
    Range("I53").Value = Date & " " & Time
    Range("B27").Select
    Call Populate 'Your next code
        ElseIf Time >= 0.5 And Time < 0.75 Then
        Sheets("AFTERNOON").Select
        Range("A54").Value = "Report completed by:"
        Range("C54").Value = Application.UserName
        Range("I54").Value = Date & " " & Time
        Range("C28").Select
        Call Populate 'Your next code

    End If

End Sub

ユーザーIDと更新日時を使用してフォーム出力に自動署名するコードも追加したことに注意してください。これがお役に立てば幸いです。

于 2012-11-23T20:37:44.790 に答える
0

他の人が述べたように:これを行う単一のイベントはありません。回避策があるかもしれませんが、その場合は_Openと_SheetActiveを使用することをお勧めします。みんな、ありがとう!

于 2012-12-01T01:10:55.213 に答える