Excel アドインでの配列非変更 UDF の実装
Excel アドインでは、セル値を変更する UDF は通常禁止されています。ただし、Windows タイマーと Application.OnTime タイマーを組み合わせて使用すると、この制限を回避できます。
Windows タイマーの制限
Windows タイマーはセルを実行している間は VBA コードを実行できません。編集中か、ダイアログが開いています。この制限により、UDF 内のセル プロパティを直接変更できなくなります。
解決策: Application.OnTime Timer
この制限を回避するには、UDF 内で Windows タイマーを使用して、 Application.OnTime タイマーをスケジュールします。 Application.OnTime タイマーは安全であり、セルが編集されておらず、ダイアログが開いていない場合にのみ起動されます。
UDF 実装
UDF 実装 (AddTwoNumbers): AddTwoNumbers UDF 内で、通常どおり合計を計算します。計算後:
初回タイマーのルーチン(AfterUDFRoutine1):
2 番目のタイマー ルーチン(AfterUDFRoutine2):
例使用法
Private Sub TestAddTwoNumbers() Dim Cell As Range Set Cell = Range("A1") ' Cache the reference in the UDF Cell.Formula = "=AddTwoNumbers(1, 2)" ' Trigger the timer routine Cell.Calculate End Sub
計算時に、呼び出し元の隣のセルを現在の値に設定することにより、セルの数式が変更されて新しい値が反映されます。
以上が配列を変更しない UDF を Excel アドインに実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。