- ベストアンサー
エクセル列の削除・挿入と関数、計算式の範囲について
- エクセルのセル保護を使用している場合、列の削除や挿入が制限されます。しかし、保護されたセルと計算式を連動させたい場合、新しいシートに合計だけを表示する表を作成する方法があります。
- 保護されたセルと計算式を連動させるためには、保護されたセルがないシートに合計のみを表示する表を作成し、計算式を入れます。この表には削除や挿入を行っても問題ありません。また、参照先がおかしくならないよう、合計のみの表を作成するシートと元のデータを表示するシートを別々に設定することも重要です。
- もし保護されたセルと計算式を連動させる方法が上手く機能しない場合、エクセルのVBAマクロを使用することも考えられます。VBAマクロを使用すると、より柔軟な条件を設定することが可能ですが、プログラミングの知識が必要です。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#2です。 >もしよろしければマクロで行う手順を教えていただけないでしょうか? Sub GOUKEIRESET() '合計式を再セットするマクロ Dim AN As Integer Range("A1").Select Selection.End(xlDown).Select AN = ActiveCell.Row Range(Selection, Selection.End(xlToRight)).Select Selection.FormulaR1C1 = "=SUM(R[" & (2 - AN) & "]C:R[-1]C)" End Sub
その他の回答 (4)
- zap35
- ベストアンサー率44% (1383/3079)
#03です。実際に試してみました 質問のデータが入力されて、6行目に保護をかけた状態で行を挿入、削除してもSUM関数のセル参照範囲は自動的に変更され正しい結果が得られます。 #01さんの補足でもふれていますが、シートの保護をするときに、「行の挿入」「行の削除」を可能とするよう設定しても#REF!になりますか?
お礼
細かくお答えいただきありがとうございました。 多分、私がしたいのは行ではなく列だったのでうまくいかなかったのだと思います。
補足
なぜでしょう…私のファイルではエラーが出ます。 自動的に修正はされないみたいです。
- zap35
- ベストアンサー率44% (1383/3079)
求めるものが良く理解できません 6行目に数式が入っているとして、3行目が削除された場合は、6行目にあった数式はどのセル範囲を参照するようになるのが希望ですか 同様に3行目と4行目の間に行を挿入した場合はどうなれば良いのですか? もしかしたら式は6行目に固定して1行目:5行目を合計するのですか? その条件が明示されなければマクロも組めません。
補足
sheet2に合計だけを表示する方法をとりたいのです。 普通なら、 =SUM(sheet1!A1:A5) と入力すれば事足りますが、列の削除をすると、 ='1'!#REF! とエラーが出ます。 これをどうにかしたいのです。 よろしくお願い致します。
- mshr1962
- ベストアンサー率39% (7417/18945)
マクロを使うなら、最終行に数式を再設定するとか可能です。 使わないならSheet2で =SUM(Sheet1!A:A) のように列全体を集計するとかすればいいのでは?
補足
列の削除、挿入をすると参照先が変わってエラーになります。 もしよろしければマクロで行う手順を教えていただけないでしょうか?
- akio_myau
- ベストアンサー率34% (515/1480)
EXCELのバージョンが書いていないのですが この質問からするとEXCEL2000あたりを使っているのでしょうか。 EXCEL2002以上のバージョンにアップグレードすれば シートの保護の際に 列の挿入や列の削除が出来るようにするチェックボックスがあります。 アップグレードを検討してはどうでしょうか。
お礼
お答えありがとうございました。
補足
すみません、バージョンはXPです。 列の削除等のチェックボックスの存在は知っていますが、6行目はロックをかけています。 最終的にシートの保護にすると、削除は出来なくなります。
お礼
ありがとうございます。 試してみます。