Q&A

回答の並べ替え:
投稿新規に質問を投稿する

1列のセルに動的にアクションをセットしたい

ウーロン茶 ウーロン茶

2022-03-01 10:04

お世話になっております。
件名の通りの内容になっております。
行いたい内容としては、
1枚目画像のように、セルB4に「D_OK」の値を入力した時点で、「D4セルは入力可」「E4セルは入力不可」。
またB5に「E_OK」の値を入力した時点で「D5セルは入力不可」「E5セルは入力可」のようにしたいです。
2列程なら、2枚目画像のように、アクションに直接セルを記載し、入力制御を行えますが、今回1000列程この作業を行いたいです。
その場合の「アクションセット」と「設定済みセル」の記載方法を教えていただきたく質問させていただきました。
試しに、XX回繰り返すアクションを使用し、カウントを使用して入力可否を行ってみたのですが、上手くいきませんでした。。


ウーロン茶 ウーロン茶
Yexiongmao様
お世話になっております。
教えていただいた設定方法で、確認メッセージを非表示にすることができました。
大変助かりました。本当にありがとうございます!!!!!
Yexiongmao Yexiongmao
B列のセルの値が変更された場合がトリガーとなってアクションセットが起動するので、画面OpenでB列をクリアしても、もとがブランクであればセルの値は変更されてないので、アクションセットは起動しません。
図の「シート設定」「アクション」「セル変更時のアクションセットの連続実行可能回数」のデフォルトは100なので、1000以上に変更しておけばアラートは出なくなると思います。
ウーロン茶 ウーロン茶
Yexiongmao様
ご返信ありがとうございます。
>「起動を行う」とは、シートを開くという意味でしょうか?
上記については、「テスト実行モード」でシートを開いた場合のことでした。
言葉足らずで申し訳ございません。

また確認したところ、①の事象のようです。
実際に使用している画面の処理流れとして、
1.画面起動でB列の値をクリア
2.別途ある「検索」ボタン押下でB列に値を表示
3.ユーザが検索結果と異なる値を入力可能
4.ユーザが入力した値によって、D列E列の入力制御を行いたい となっております。
そのため、先ほどの確認事項がでているようです。

1.B列の値クリアはまだ実行しなくても良いのですが、
2.の検索結果をB列に入れるに関しては必須処理になりますので、
今回の確認事項が出るのは仕方ないのかなとも感じます。
ですがもし確認メッセージがでなくなる方法をご存じでしたら、ご教授いただけますと幸いです。
Yexiongmao Yexiongmao
私の環境ではアラートが出ないので、2点確認していただきたいことがあります。
①「起動を行う」とは、シートを開くという意味でしょうか?
であれば、シートOpen 時のアクションセットが設定されている可能性が高いです。
「アクションの定義」画面のアクションセットの名前の右側の3つのアイコンの一番左のアイコンが緑色になっているものは無いでしょうか?
先程のアクションセットはシートのOpen 時に起動する必要はありません。
②B列のセルの変更時にアラートが出るのであれば、先程のアクションセットで、上2つの条件部分が正しくB列を参照しているか、またセル操作の緑のアクションに誤ってB列が含まれていないかを確認して見てください。

アラートの回数などから、先程のアクションが原因である可能性が高いのですが、今の所他に思いつくことはありません。
ウーロン茶 ウーロン茶
迅速にご返信いただき、ありがとうございます!!
申し訳ございませんが、もう1点お伺いさせていただきたいです。
ご教示いただいた、アクションでセルの入力制御を行えたのですが、
起動を行うと、画像のような確認事項が9回出力されます。
こちらを出力されずに、処理を続行する方法はございますでしょうか。
Yexiongmao Yexiongmao
メダルベストアンサー
実行画面です
こんにちは。

B4:B1004のセル範囲を選択して右クリックメニューから「アクション」「セル変更時にアクションセットを実行する」で「+新規アクションセット作成」して、図のようなアクションセットを作成し、「OK」ボタンを押し、「アクションの定義」画面に戻ったら「選択」ボタンを押すと、図のように設定済みセル欄にB4:B1004のように表示されます。(セル範囲は⚙で変更できます)
B列の入力は、ブランク、D_OK、E_OKのみのリストボックスにしてみました。
アクションが起動したセルは="B"&ROW()になります。
デフォルトでは全てのセルが入力禁止になっていますが、入力を削除してブランクになった場合は、初期設定に戻す様になっています。
ウーロン茶 ウーロン茶
ご返信ありがとうございます。
言葉足らずで申し訳ございません。。
この場合ですと、B4:B1004に「D_OK」や「E_OK」の値を入力し、
それに応じて「D4:E1004」セルの入力制御を行いたい形になります。
Yexiongmao Yexiongmao
こんにちは。

確認したいのですが、1000行ではなく1000列(ALP列まで)で間違いないでしょうか?