Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Excel 2019)
テーブル機能 「範囲の変更」で入力規則が反映されない
投稿日時: 23/02/02 09:04:38
投稿者: WinArrow
投稿者のウェブサイトに移動

テーブル機能を使っています。
テーブル範囲を増やそうとして
「テーブルサイズの変更」を実行しました。(1行増やす)
※シートの保護解除後の操作
 
その結果、H列セルとK列セルに設定している「入力規則」が、
H列だけ自動反映されない事象が発生しました。
 
テーブルは、A列からT列まであります。(テーブル範囲は、A2:T66)
A列:数式
G列:数式
H列:入力規則(リスト:=INDIRECT("可燃"&B66&"班"))
J列:数式
K列:入力規則(リスト:=INDIRECT("資源"&B66&"班"))
L列:数式
M列:数式
O列:数式
P列:ロック
Q列:数式
R列:数式
S列:数式
T列:数式(非表示)
上記以外の列は、入力可能に設定しています。
 
何処か設定上に問題があるのでしょうか?
 
因みに、途中の行に挿入する場合は、問題ありません。
 
 

回答
投稿日時: 23/02/02 10:20:57
投稿者: taitani
投稿者のウェブサイトに移動

私も同じ事象に遭遇したことがありますが、一か所でも、書式や罫線が違ったり、計算式が入っている場所と入ってない場所があったりする場合、行を追加しても、入力規制が継承されませんでした。
※ 計算式が入っている場所と入ってない場所というのは列単位で、
例えば、A2に =1+1 が入っている場合、A3 が 2 だった場合を指します。

投稿日時: 23/02/02 10:44:13
投稿者: WinArrow
投稿者のウェブサイトに移動

テーブル設定情報の追加です。
  
数式の入っているれるには、条件付き書式を設定しています。
「入力不可」を目視できるよう、文字色を赤に設定しています。
最終行には、集計行を設定しています。
  
「集計」が表示されているセルにカーソルを置き、
「テーブル行の挿入」を実行すると、「条件付き書式」の適用先が、変わってしまいます。
「条件付き書式」の適用先は、=$A:$Aのように列で指定していますが、
集計行の上に行挿入すると、
行が分割されてしまいます。

行挿入前:=$A:$O
行鼠入後:=$A$1:$O$67,$A$69:$O$1048576
問題は、68行目が抜けてしまうことです。
これは、非常に困ります。
 

回答
投稿日時: 23/02/02 10:50:09
投稿者: taitani
投稿者のウェブサイトに移動

問題の切り分けとして、条件付き書式の適用範囲を $A:$A ではなく、
$A$2:$A$100 のように、テーブル範囲内 (集計行除く) のみで設定しなおしても同様でしょうか。
 
なお、M365 バージョンでは事象は再現されませんでした。($A:$A の条件付き書式設定)

投稿日時: 23/02/02 11:00:51
投稿者: WinArrow
投稿者のウェブサイトに移動

条件付き書式の適用先は、最初データ範囲に設定していたが、
最終行の下に挿入すると、条件付き書式が継承されないので、
列で指定することに変更しました。
それで、行挿入をやめて、範囲の変更に切り替えたおころ、
入浴規則に問題が出た・・・・という始末です。

回答
投稿日時: 23/02/02 11:50:23
投稿者: taitani
投稿者のウェブサイトに移動

そういう事情があったんですね、、、
当方では事象の再現ができなかったので、Excel 2019 の方からの回答を待ちましょう。

回答
投稿日時: 23/02/03 11:25:04
投稿者: Suzu

正直、Excelの テーブルは 制限と言うか 不具合と言うか 意図しない動作になる事は
この掲示板でも、スレッドとして挙がっていました。
 
条件付き書式や、入力規則、揮発性関数 あたりが絡んでいる今回は
正直、「出てもしょうがないなー」との感想です。なので試してもいません。
 
 
テーブル構造で無ければどうでしょう?
テーブル構造にする目的は何でしょう?
 
テーブル構造ではなく単なる表で不具合が出ないのであれば
テーブルにする目的 の部分を VBAで賄えないでしょうか?
 
或いは、入力を フォームや別シートにしVBAにてテーブルに追加。
入力規則を排したらどうでしょう?

回答
投稿日時: 23/02/03 11:56:40
投稿者: んなっと

確認させてください。
入力規則については、最初のtaitaniさんの回答で解決していますよね?
  
列のどこか途中のセルがコピー貼り付けなどによって入力規則がクリアされていると、
行挿入してもその列の入力規則は適用されません。
その場合は 正常セルコピー→列範囲選択→形式を選択して貼り付け→入力規則 
です。一度この書き込みをしたのですが、taitaniさんの回答が先に書き込まれていたので削除しました。
  
残る問題は条件付き書式の適用範囲についてだけですよね。

投稿日時: 23/02/03 13:06:31
投稿者: WinArrow
投稿者のウェブサイトに移動

んなっと さんの引用:

確認させてください。
入力規則については、最初のtaitaniさんの回答で解決していますよね?
  
列のどこか途中のセルがコピー貼り付けなどによって入力規則がクリアされていると、
行挿入してもその列の入力規則は適用されません。

 
>列のどこか途中のセルがコピー貼り付けなどによって入力規則がクリアされている
これは、確認済です。
H2をH3〜H66まで、「入力規則」を複写してから実行しています。
 

回答
投稿日時: 23/02/03 13:21:35
投稿者: taitani
投稿者のウェブサイトに移動

問題の切り分けA
1.新しいブックを開く・・・@
2.A1:T66の範囲を@のA1 に値で貼り付ける
3.テーブルの設定を行う
4.@のH列、K列に元のファイル・・・Aと同様の「入力規則」を設定する。
5.集計行を設定
6.67行目を追加する
  
上記で同じ事象が発生するなら、Excel のバグなので、Microsoft へ報告するほうが良い見解です。

投稿日時: 23/02/03 15:22:53
投稿者: WinArrow
投稿者のウェブサイトに移動

taitani さんの引用:
]
[問題の切り分けA
1.新しいブックを開く・・・@
2.A1:T66の範囲を@のA1 に値で貼り付ける
3.テーブルの設定を行う
4.@のH列、K列に元のファイル・・・Aと同様の「入力規則」を設定する。
5.集計行を設定
6.67行目を追加する
  
上記で同じ事象が発生するなら、Excel のバグなので、Microsoft へ報告するほうが良い見解です。

 
taitaniさん、ありがとうございます。
新しいブックではなく、新しいシートで試してみました。
サイズ変更による行追加で、H列の入力規則は、継承できました。
数式を元テーブルから複写したんですが、
元テーブルを参照しているので、新テーブルの名前を変更して
「置換」でテーブル名を変更しました。
数式バーで確認すると、うまくいったかのように見えますが、
サイズ変更で追加された行の数式が元テーブルを参照しています。
別シートでも、問題のテーブルを参照しているので、数式は、再入力しないとだめみたいです。
数式の再入力は、大変です。
 
もう少し弄ってみます。

回答
投稿日時: 23/02/03 15:33:08
投稿者: んなっと

「テーブルサイズの変更」の操作の代わりに
一番下の集計行のどこかのセルを選択して
Ctrl+Dキー(下にコピー)
も試してみてください。

回答
投稿日時: 23/02/03 15:35:03
投稿者: taitani
投稿者のウェブサイトに移動

問題は入力規制なので、あえて計算式ではなく、値と記載いたしました。
でも、入力規制は継承できたということなので、どこかのセルが計算式ではなく値になっていたかもですね。
一部の計算式が、テーブル項目名参照形式 ([]形式)ではなく、セル参照になっていたとか。
 
うちの部署でも、私が作成を行ったテーブルの帳票をよく壊されるwので、
週に一回、計算式の列を2行目から最終行まで選択して、Ctrl+Enter とか、
あとは、んなっとさんが言っている、「正常セルコピー→列範囲選択→形式を選択して貼り付け→入力規則」もよくやります。

投稿日時: 23/02/03 16:44:00
投稿者: WinArrow
投稿者のウェブサイトに移動

んなっと さんの引用:
「テーブルサイズの変更」の操作の代わりに
一番下の集計行のどこかのセルを選択して
Ctrl+Dキー(下にコピー)
も試してみてください。

 
んなっと さん、ありがとうございます。
試した結果
 
H列の「入力規則」はコピーされず、
条件付き書式の適用先が、分割されてしまいました。

投稿日時: 23/02/03 17:04:17
投稿者: WinArrow
投稿者のウェブサイトに移動

Suzu さんの引用:
正直、Excelの テーブルは 制限と言うか 不具合と言うか 意図しない動作になる事は
この掲示板でも、スレッドとして挙がっていました。
 
条件付き書式や、入力規則、揮発性関数 あたりが絡んでいる今回は
正直、「出てもしょうがないなー」との感想です。なので試してもいません。

 
私も、そんな感じで考えています。
 
 
Suzu さんの引用:

テーブル構造で無ければどうでしょう?
テーブル構造にする目的は何でしょう?
 
テーブル構造ではなく単なる表で不具合が出ないのであれば
テーブルにする目的 の部分を VBAで賄えないでしょうか?
 
或いは、入力を フォームや別シートにしVBAにてテーブルに追加。
入力規則を排したらどうでしょう?

 
この処理は、1回/年の処理で、且つ、毎年、操作する担当者が変わる
ということもあり、操作者に手修正させるのは、難があります。
そんなこともあり、「計算式を分かりやすくしたい」というのが、真の目的です。
 
当該ファイルは、年初に、前年度ファイルをVBAで複写しています。
マクロでは、不要データ削除などが組み込んであります。
テーブル行追加を組み込んだら、条件付き書式が、抜け&分割の事象が判明して
テーブルのサイズ変更を組み込んだら、入力規則が継承されていないことが判明した
ということです。
 
取り敢えず、H列の入力規則は、上のセルを複写して対応することにしたのですが、
入力規則が全部ならば、まだしも、1つだけ継承されないというのは、気分が悪い。
 
ということで、投稿した次第です。

投稿日時: 23/02/04 16:26:49
投稿者: WinArrow
投稿者のウェブサイトに移動

その後、テーブルを範囲に変更して、
再度、テーブル設定しました。
 
それでも、サイス変更でH列のみ入力規則は継承できません。
 
一つ、分かったことがあります。
 
「行挿入」という操作は、選択した行の上しか機能しないと思っていたが、
テーブルの最終行(DATABODYRANGE)では、(上)とは別に(下)が指定できることが分かりました。
この(下)を使うと、入力規則が継承できます。
やはり、Excelのバグではないか?
代替の操作で対応することとします。
 
皆様、ありがとうございました。