- 締切済み
Excelで、セルに値ではなく関数を残したいです。今後テンプレートとし
Excelで、セルに値ではなく関数を残したいです。今後テンプレートとして使用するためなのですが、、、 たとえば、セルG19に(=E19-F19) と関数を割り当て、結果が15と表示されたとします。ところがこのセルから15を消してしまうと(通常通りbsキーで消すだけです)、割り当てた数式まで消えてしまいます。 また、E19とF19には今後も別の値を代入していきたいため(というかこのシートをテンプレートとして使用していきたいため)、保存をしてまた別の日に開くと、割り当てた数式が飛んでいます。 最終的な値がでるために4~5つの計算工程を経なければならないため、最初の生データの値を挿入するだけで、最終値が出るという作業を毎回したいのですが、上記理由のため、毎回修正を加えたり、PCを切らないようにしたりなどをして対応してきました。 ご回答よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
ある完成した(データ入力済で数式が正しい)シートがあるとします。 数式だけのシートを作る方法を考えてみました。 VBAですが、標準モジュールに下記をコピペして(貼り付けて)実行させるだけです。 Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") はSheet1(式・データが完成しているシート)からSheet2(白紙のシート)に式だけ転記するものです。 Sheet2をテンプレートにしたり原本にしようとするものです。 ()内のシート名は実情にあわせて変えて実行してください。 Sub test01() Dim sh1, sh2 As Worksheet Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") 'd = sh1.Range("A65536").End(xlUp).Row 'r = sh1.Range("iv3").End(xlToLeft).Column d = 100 r = 20 For i = 1 To d For j = 1 To r If sh1.Cells(i, j).HasFormula = True Then sh2.Cells(i, j).Formula = sh1.Cells(i, j).FormulaLocal sh2.Cells(i, j).Interior.ColorIndex = 6 '式のあるセルパターン色を黄色に End If Next j Next i End Sub ーーー d = 100 r = 20 の部分は表が100行20列内に収まっている場合の例です。 ここの部分は、データの実情から取る方法もあるが、とりあえずVBAのコードが易しくなるようにしています。 またデータが消えることによって、 例えば=AVERAGE(A1:A4)の式を入れているSheet2のセルは#DIV/0!と表示されるが、そのままにするか、エラーが出ないように式を改良するかです。 例 =IF(COUNTBLANK(A1:A4)=4,"",AVERAGE(A1:A4))のように場合によって異なり、結構難しい場合もあるが。 ーー 罫線は先に罫線だけ複写して置いてください。 編集ークリアのあとのメニューや 形式を選択して貼り付けのあとのメニュー の活用も考えてください。 ーーー これを小生日頃使いこなしているわけではないので、思わぬボロがあるかもしれませんが、やってみてください。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 外していたらごめんなさい。 質問内に >15を消してしまうと(通常通りbsキーで消すだけです)、割り当てた数式まで消えてしまいます・・・ とあるのですが、 数式が入っているセルで操作されているのではないでしょうか? ところで一つの案ですが、 セルを選択してDeleteで削除するのではなく、VBAで関数式が入っているセルはそのままで 数値のみ削除する方法はどうでしょうか? 操作したいSheet見出し上で右クリック → コードの表示 を選択して ↓のコードを貼り付けて、マクロを実行してみてください。 Sub 数値のみ削除() Dim c As Range For Each c In ActiveSheet.UsedRange If Not c.HasFormula And IsNumeric(c.Value) Then c.Clear End If Next c End Sub これで数式が入っているセルはそのままで入力した数値のみが削除できるはずです。 以上、参考になれば良いのですが 的外れなら読み流してくださいね。m(__)m
- takuranke
- ベストアンサー率31% (3923/12455)
意味が良くわかりません >保存をしてまた別の日に開くと、割り当てた数式が飛んでいます。 自動で削除はされないと思います。 >セルG19に(=E19-F19) と関数を割り当て、結果が15と表示されたとします。ところがこのセルから15を消してしまうと~ これは当然です、計算式そのものを消してますので、 必要な計算を終えたらシートコピーをして、必要なタイトルを付けて保存したらよいのでは。 E19とF19に数値入力をすれば、G19に反映されます、その後シートコピーをして、 シートコピーをしたら、元の作業シートの数値入力したE19とF19をクリアすれば、G19は0(又はヌル)になります。 ブックそのものの容量が大きくなるのが嫌だとかの場合は、ブックそのものをコピーする。 >保存をしてまた別の日に開くと、割り当てた数式が飛んでいます。 自動で削除はされないと思います。
- REAPER
- ベストアンサー率36% (85/235)
G19をセルの保護で保護してください。 Excel セルの保護 http://www.pursue.ne.jp/Document_xls/xls0014.htm