このコードは、ActiveCellに従属セルがある場合(つまり、別のセルにActiveCellを指す数式がある場合)、矢印を短時間点滅します。 ScreenUpdating = False
ステートメントを考慮すると、これは予期しないことです。ShowDependentsは、ScreenUpdating = Falseの矢印を表示します。
Public Sub ShowDependents()
Application.ScreenUpdating = False
ActiveCell.ShowDependents
ActiveCell.Parent.ClearArrows
End Sub
は、私は、これはExcelのバグだと思いますが、それは本当に迷惑です - それは私たちが貧弱なユーザー体験にShowPrecedents/NavigateArrowを使用することはできません。
矢印を表示せずにShowDependentsを使用する方法はありますか?
これはExcel 2016で、他のバージョンではテストしていません。
(単純化されたコードは、実際の問題を示す以外、便利な何もしないことに注意してください)
EDIT:ハハ!私(一種)はそれを解決しました! 代わりClearArrowsを呼び出すと、私は
:-)
ShowDependents Remove:=True
なし点滅する矢印を使用して以下の修正されたコードは、最初の依存性細胞を検出し、セットは、元のセルに焦点を当てます。まだ何も役に立たないが、点滅する矢印を避けることができることを示している。
私はサブを呼び出すときにまだ少しのちらつきがあります。視界には矢印がなく、ちょうどちらつきです。おそらく許容できるが、迷惑なので、ちょうど.ShowDependents
を使用しないよう
Public Sub ShowDependents()
Dim source As Range, Target As Range
Set source = ActiveCell
Application.ScreenUpdating = False
source.ShowDependents
Set Target = source.NavigateArrow(False, 1) ' Will set focus on dependent cell
source.Worksheet.Activate ' Reset focus to selected cell
source.ShowDependents Remove:=True ' ClearArrows will flash arrow
End Sub
Excel 2010で試したところ、この問題は私にとっては発生しません。 – UGP
私のためにreproしません(Excel 2016)。 – jkpieterse
@jkpieterse @UGPあなたは本当ですか?これをテストするには、セルB1に '= A1'のような数式を入力し、次にA1を選択して、**ステップバイステップ**(F8を使用)の手順を実行する必要があります。これは間違いなく再現性があり、OPで述べたように(少なくともExcel 2016では)参照矢印を確実に示しています。たとえば、選択したセルへの参照がない場合や、(.ClearArrowsのために)ステップバイステップで実行しない場合は、私が説明したようにしないと表示されません。 –