データベースにかなりの負荷をかけている Excel スプレッドシートがいくつかあります (総勘定元帳テーブルに対して 100 以上のクエリが実行されています... うわー!)。現在のシートのみを更新する (SHIFT+F9) ことは、一部のスプレッドシートで役立ちますが、選択したセルだけを更新する方法が必要でした。ThisWorkbook オブジェクトに配置された次のコードを思いつきました。
Dim currentSelection As String
Private Sub Workbook_Open()
Application.OnKey "+^{F9}", "ThisWorkbook.RecalculateSelection"
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
currentSelection = Target.Address
End Sub
Private Sub RecalculateSelection()
Range(currentSelection).Calculate
End Sub
できれば、XLAファイルに保存してExcelアドインとして読み込むなど、移植性を高めたいと考えています。これは私が使用している方法で可能ですか?これを達成するためのより良い方法はありますか?