セル更新時のアクションのコピーについて
2019-10-23 17:13
セル更新時のアクションを動的に指定する(あるアクションで指定する)ことは可能でしょうか。
明細の入力フォームを作成していますが、明細追加ボタンを押下すると、明細行が追加する処理を考えています。その明細行追加の中に、セル更新時のアクションを指定したいです。
もし不可能なら、想定される最大の明細数分をあらかじめ設定しておくようになります。
回答を投稿するにはログインが必要です。
みなさん、回答ありがとうございます。
あらかじめアクション設定、書式設定をしておき、非表示とし、必要に応じ、表示に切り替えて使用するようにいたします。
あらかじめアクション設定、書式設定をしておき、非表示とし、必要に応じ、表示に切り替えて使用するようにいたします。
こんにちは。
明細行の追加を行挿入で行うのではなく、非表示行を表示させるようにしたらいかがでしょうか。
予め書式の設定もできますので、行追加よりシンプルな構成になると思います。
また、明細を追加するセル全体、又は列ごとのセル範囲に変更時のアクションを設定し、そのアクションの中でROW()、COLUMN()、を使って変更されたセルのアドレスを参照することで、様々な対応が可能になると思います。
明細行の追加を行挿入で行うのではなく、非表示行を表示させるようにしたらいかがでしょうか。
予め書式の設定もできますので、行追加よりシンプルな構成になると思います。
また、明細を追加するセル全体、又は列ごとのセル範囲に変更時のアクションを設定し、そのアクションの中でROW()、COLUMN()、を使って変更されたセルのアドレスを参照することで、様々な対応が可能になると思います。

セル更新時のアクションは動的にセットする方法はないと思います。
行挿入した際に、上の行の「セル更新時のアクション」がコピーされるか、
「セル[ ]をコピーして[ ]に貼り付ける」にて「セル更新時のアクション」もコピーされると思っておりましたが、「セル更新時のアクション」で設定した「B1,B2」に設定した場合、これらは完全に固定になっている様で、行挿入・行削除しても設定してセルがずれない様です。
記載されている通り、明細行にセル変更時のアクションを指定する場合は、あらかじめ行を用意しておき、設定しておく必要がありそうです。
また、別の理由で弊社では行挿入・行削除は使っておらず、本件の問題に直面した事がありませんでした。
別の理由というのは、CELFの有効行・列の数に依存しますが、200行程度の明細において、行挿入・行削除を行った場合のレスポンスが大分遅いです。
(数十秒かかるケースもありました。)
その為、あらかじめ想定される最大の明細を作成しておき、非表示にする方法で実現しております。
行挿入した際に、上の行の「セル更新時のアクション」がコピーされるか、
「セル[ ]をコピーして[ ]に貼り付ける」にて「セル更新時のアクション」もコピーされると思っておりましたが、「セル更新時のアクション」で設定した「B1,B2」に設定した場合、これらは完全に固定になっている様で、行挿入・行削除しても設定してセルがずれない様です。
記載されている通り、明細行にセル変更時のアクションを指定する場合は、あらかじめ行を用意しておき、設定しておく必要がありそうです。
また、別の理由で弊社では行挿入・行削除は使っておらず、本件の問題に直面した事がありませんでした。
別の理由というのは、CELFの有効行・列の数に依存しますが、200行程度の明細において、行挿入・行削除を行った場合のレスポンスが大分遅いです。
(数十秒かかるケースもありました。)
その為、あらかじめ想定される最大の明細を作成しておき、非表示にする方法で実現しております。