非常に長いテーブルの特定のデータを蓄積し、頻繁に変更するMSWord文書があります。そこで、行の最新の変更時刻でデータを並べ替えたいと思います。もちろん、手動で変更時間を入力する列を追加すれば、これは機能しますが、可能であればこれを避けたいと思います。
より具体的な質問で保留になっているので、それに応じて修正しようとしています。
私が特に望んでいるのは(そして私はそれを自分でできる)これです:
MS Wordには変更の追跡などの機能があるため、テキストの変更された各部分には、最終変更時刻を何らかの形式で記録する必要があります。
私の質問は、Visual Basicマクロ内からこの情報にアクセスするにはどうすればよいですか? ThisTable.ThisCell.ModificationTime()やThatTable.CurrentRow.LastModificationSessionTime()などのようなものを意味します。
これはExcelワークシート用です。データは列Aに入力または変更されます。マクロは列Bに日付/時刻を自動的に入力します。次に、マクロは列A&Bを列B、最新のものを一番上に置きます。
ワークシートのコード領域に次のイベントマクロを入力します。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim A As Range
Dim AB As Range
Set A = Range("A:A")
Set AB = Range("A:B")
If Intersect(Target, A) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
Target.Offset(0, 1) = Now
AB.Sort Key1:=Range("B1"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Application.EnableEvents = True
End Sub
ワークシートコードであるため、インストールが非常に簡単で、自動的に使用できます。
懸念がある場合は、最初にトライアルワークシートで試してください。
ブックを保存すると、マクロも一緒に保存されます。 2003年以降のバージョンのExcelを使用している場合は、ファイルを.xlsxではなく.xlsmとして保存する必要があります。
マクロを削除するには:
一般的なマクロの詳細については、以下を参照してください。
http://www.mvps.org/dmcritchie/Excel/getstarted.htm
そして
http://msdn.Microsoft.com/en-us/library/ee814735(v = office.14).aspx
イベントマクロ(ワークシートコード)の詳細については、以下を参照してください。
http://www.mvps.org/dmcritchie/Excel/event.htm
これを機能させるには、マクロを有効にする必要があります!