くそー、アドインが見つかりませんでしたが、コードを再作成しました。これは完全にテストされていないことに注意してください。私が行ったどんな小さなテストでも、それは機能します...
ロジック:
- 非表示のシートを作成します。
- その非表示シートの行 1 に現在のセルの書式を保存します。
A2
アクティブシートで現在選択されている行番号を非表示シートのセルに格納します
- 別の行に移動すると、最後の行番号を取得して復元します。
コード:
このワークブックのコード領域
Private Sub Workbook_Open()
Dim ws As Worksheet
'~~> Delete the Temp sheet we created i.e if we created
Application.DisplayAlerts = False
On Error Resume Next
Sheets("MyHiddenSheet").Delete
On Error GoTo 0
Application.DisplayAlerts = True
'~~> ReCreate the Sheet
Set ws = ThisWorkbook.Sheets.Add
'~~> i am using a normal name. Chnage as applicable
ws.Name = "MyHiddenSheet"
'~~> Hide the sheet
ws.Visible = xlSheetVeryHidden
End Sub
関連するシート コード領域。私はSheet1
例として使用しています
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'~~> Don't do anything if multiple cells are selected
If Target.Cells.CountLarge > 1 Then Exit Sub
Dim ws As Worksheet
'~~> Set our relevant sheet
Set ws = ThisWorkbook.Sheets("MyHiddenSheet")
'~~> Get the row number of the last row we had selected earlier
'~~> For obvious reasons, this will be empty for the first use.
If Len(Trim(ws.Cells(2, 1).Value)) <> 0 Then
'~~> If user has moved to another row then
'~~> Restor the old row
If Target.Row <> Val(ws.Cells(2, 1).Value) Then
ws.Rows(1).Copy
Rows(ws.Cells(2, 1).Value).PasteSpecial xlFormats
End If
End If
'~~> Copy the current row's format to the hidden sheet
Rows(Target.Row).Copy
ws.Rows(1).PasteSpecial xlFormats
'~~> Store the current rows value in cell A2
ws.Cells(2, 1).Value = Target.Row
'~~> Highlight the current row in a shade of blue.
'~~> Chnage as applicable
With Rows(Target.Row).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent5
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
Rows(Target.Row).Select
End With
'~~> Remove the `Ants` which appear after you do a copy
Application.CutCopyMode = False
End Sub
スクリーンショット: