Excelのテーブルに行や列を挿入する際のエラー
Excelのテーブルに行や列を挿入しようとすると、「この操作を実行するとワークシート上のテーブル内でセルが移動されてしまうため、この操作は行われません」というエラーメッセージが表示され、失敗する時があります。
長年このエラーの原因が不明でしたが、あるときどうしても解決する必要があって調べたところ、ようやく原因がわかりました。
現象
図1の場合、上のテーブルに行を追加しようとするとエラーが発生します。
図1 |
図2の場合は、左側のテーブルに列を追加しようとすると発生します。
図2 |
テーブルに行や列を追加しようとすると、そのテーブルの範囲だけが拡張されます。
どういう事かというと、図1の上のテーブルの場合、行を挿入すると、B, C, D列のみセルが追加され、A列やE列は変化がありません。
そうすると、下のテーブルは、列1、2、3だけ下にずれることになり、テーブルが壊れてしまいます。そのため、最初のエラーメッセージが表示されるという事です。
図2の場合も同様で、左のテーブルに列を追加しようとすると2行目から5行目までだけが右にシフトしようとします。これもまた右側のテーブルが壊れてしまうため、エラーが起こるというわけです。
回避策
テーブルに行や列を追加するのではなく、シートに対して行全体、列全体を追加すれば、図1の下のテーブルや図2の右のテーブルも全体的に移動するのでエラーは発生しません。
この場合、人間が手動で追加する場合はいいのですが、VBAを使って、テーブルに行や列を追加する場合は、シートに対する行や列の追加が必要になるためやっかいです。
一つのシートにテーブルを複数追加する場合は、このような問題が起こらないようにレイアウトを考える必要があります。
私の場合は、仕方なく、図1のパターンでは、列が少ないテーブルを下に配置することにしました。これだと、上のテーブルを追加しても、下のテーブルは全体的に下にずれるため問題ありません。
そういうレイアウトにできない場合は、仕方がないので、行全体、列全体を追加することになります。
よく分からないです。
返信削除これ説明もしづらいんです。気が向いたら書き直します。そして、ここに書いていない原因もあるんです。
返信削除