要望ボックスへ
回答一覧へ

2022/05/11【ID:0】

【6】要望ボックス

特定の色を数えるユーザー定義関数について、色を変えたタイミングで反映させる方法はありますか?
(参考:https://www.youtube.com/watch?v=kVaO0IGirGE

【回答】

色を変更する際に、他のセルからコピペするなどの場合は自動更新されますが、色を変更するだけでは自動更新されないです。
関数が更新されるタイミングは、引数に対して変更があった場合になります。
ただ、色を変更するだけでは、引数が変更されたとはならないみたいです。

上記の内容を踏まえて思いつく対策を2つ挙げますと以下になります。
※他にもいろいろあると思います。

①余分な書式もコピーされてしまいますが、色付けを書式のコピーなどにより行う

②リアルタイムの更新ではありませんが、変更後に別のセルを選択したと同時に更新する

「②」の場合は、対象のシートモジュール、もしくはブックモジュールにて特定のイベントプロシージャに以下の内容を記述する必要があります。

Application.CalculateFull
※「Application.Calculate」では計算されません。

「②」について、特定のシートのみに自動更新を適応する場合は、シートモジュールの「SelectionChange」を用います。
こちらは特定のシートに対し、セルの選択が変更されたタイミングで実行されるイベントプロシージャになります。

上記の画像のように選択して、下記の内容「Application.CalculateFull」を追記します。

これだけで完了です。
「Application.CalculateFull」ではなく「Application.Calculate」の場合、色変更では反応してくれないです。
なので、「Application.CalculateFull」にして、すべてに対して更新をするようにしています。

次にブック全体に自動更新を適応する場合は、ブックモジュールの「SheetSelectionChange」を用います。
こちらはシートモジュールで説明した内容と同じで、セルの選択が変更されたタイミングで実行されるイベントプロシージャになります。
違いは、すべてのシートの適応される点です。

上記の画像のように選択して、下記の内容「Application.CalculateFull」を追記します。

これだけで完了です。

パソコンで開く場合は、共有用のリンクコピーがあるのでご活用ください!


是非、シェアお願いします!

  リンクコピー Twitter Facebook はてなブックマーク Pocket
要望ボックスへ
回答一覧へ

- 関連記事 -



- 他の記事 -





要望ボックスへ
回答一覧へ