Excelで次のVBAコードのパフォーマンスを有意義な方法で改善する方法はありますか?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Me.Range("Group1"), Target) Is Nothing Then
With wksData
.Range("Group1Column").Value = Target.Column
.Range("Group1Row").Value = Target.Row
End With
End If
End Sub
Group1ColumnおよびGroup1Rowの名前付き範囲を調べる条件付き書式を追加しました。パフォーマンスの問題がSelectionChangeの過剰な処理に関連しているのか、条件付き書式設定に関連しているのかはわかりませんが、解消したい顕著な遅延があります。
条件付き書式は非常に基本的で(Column($ D3)= Group1Columnのようなもの)、「目を見張る」目的でのみ使用されますが、ソリューション全体に役立ちます。
私が試したいくつかのこと:.ScreenUpdating、.EnableEvents、.Calculations。.ScreenUpdatingは、ユーザーが次のセルを選択する前に待機する必要があることを保証しますが、私が考えていたものとはまったく異なります。
ヒントは役に立ちます!