ワークシートのプロパティ(Microsoft Excel)
ローリーは、Excelブックのプロパティを表示する方法を知っています。ただし、彼女がやりたいのは、個々のワークシートに関連する同様のプロパティを表示することです。たとえば、彼女は、個々のワークシートの作成日、変更日、作成者、または「最終変更者」などのプロパティを表示する方法があるかどうか疑問に思います。
残念ながら、Excelはワークシートのそのような情報を追跡しません。私たちが理解できた唯一の回避策は、ワークブック内のワークシートに関する情報の独自の記録を作成することです。 Workbook_SheetChangeイベントハンドラーを開発するための明白な方法。以下は、Visual BasicEditorでThisWorkbookオブジェクトに追加できる例です。
Private Sub Workbook_SheetChange(ByVal ws As Object, ByVal Target As Range) Dim s As Worksheet Dim J As Integer Dim FoundIt As Boolean On Error Resume Next Set s = Worksheets("Stats") On Error GoTo 0 Application.EnableEvents = False If s Is Nothing Then ' Stats worksheet did not exist Set s = Worksheets.Add(After:=Worksheets(Worksheets.Count)) s.Name = "Stats" s.Range("A1") = "Worksheet" s.Range("B1") = "Creator" s.Range("C1") = "Last Modified" s.Range("D1") = "Modifed By" With s.Range("A1:D1") .Font.Bold = True .Borders(xlEdgeBottom).LineStyle = xlContinuous .Borders(xlEdgeBottom).Weight = xlThin End With s.Range("A2") = s.Name s.Range("B2") = s.CustomProperties.Creator s.Range("C2") = Format(Now, " mm/dd/yyyy hh:mm am/pm") s.Range("D2") = Application.UserName End If J = 2 FoundIt = False While (s.Cells(J, 1) <> "") If s.Cells(J, 1) = ws.Name Then FoundIt = True s.Cells(J, 3) = Format(Now, " mm/dd/yyyy hh:mm am/pm") s.Cells(J, 4) = Application.UserName End If J = J + 1 Wend If Not FoundIt Then ' Worksheet name not found s.Cells(J, 1) = ws.Name s.Cells(J, 2) = ws.CustomProperties.Creator s.Cells(J, 3) = Format(Now, " mm/dd/yyyy hh:mm am/pm") s.Cells(J, 4) = Application.UserName End If ws.Activate Application.EnableEvents = True End Sub
ブックに変更を加えると、イベントハンドラーがトリガーされます。最初に、Statsという名前のワークシートがあるかどうかを確認します。そうでない場合は、ワークシートが作成され、いくつかの基本的な情報がワークシートに追加されます。ハンドラーは統計ワークシートを調べて、そこにあるデータに、変更が発生したワークシートの行が含まれているかどうかを判別します。そうでない場合は、行が追加されますが、そうである場合は、行の情報が更新されます。
ハンドラーは、ワークシート名、作成者、最後に変更が加えられた日付、および変更を加えたユーザー名の4つの情報のみを追跡します。 (Creatorプロパティは、ワークシートを作成したプログラムに関連する数値を示します。これは人間にとってはあまり役に立ちません。情報の保存方法の例として含めました。)
これは回避策にすぎないことを忘れないでください。ワークシートで追跡する情報の種類を慎重に検討する必要があります。次に、その要望を反映するようにコードを変更できます。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(7542)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。