• 締切済み

計算式の入っていないセルの消去

エクセルのVBAについて質問です。 会社の経費の予算と実績を各部署をひとつのシートで作ってます。 各シートは、勘定科目(行)ごとに毎月(列)出しています。 東京支店  ・・・ 11月     実績  予算  累計実績  累計予算 累計予算比 交通費 100  120   500    600   83.3% 接待費 300  200   900    500   180% 合計  400  320   1,400  1,100   127% といった形で作ってます。 累計実績、累計予算と累計予算比には計算式を入れています。毎月の実績と予算の部分のみ数字の消去をしたいのですが、計算式が途中に入っているので、毎月の実績と予算のところのみをいちいち選択して削除しているのでいつも大変な作業です。。。また部署が30部署ほどあるのでとっても大変です。 また、勘定科目は部署によって違い、新しい勘定が増えたりするので、合計欄を出すセルの行が毎月違ってくるので、全部署の削除セルを同じにすることもできません。 計算式が入っているセルは消去せずに、入っていない数字の消去をする方法はありますでしょうか? よろしくお願いいたします。

みんなの回答

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.3

以下のような操作手順で、数値セルのみデータが消去できます。 1)表内の適当なセルを選択 2)Shift+Ctrl+:で、表のセル範囲を選択 3)Ctrl+G で、「ジャンプ」ダイアログボックスを表示 4)Alt+S で、セル「選択オプション」ダイアログボックスを表示 5)O で、「定数」オプションを選択 6)X、G、E で、「文字、論理値、エラー値」のチェックを外す 7)Enter で、「OK」して「数値」セルのみ選択 8)Delete で、選択セルのデータを消去 上記作業を「マクロの記録」すればコードが得られます。

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.2

質問から推測できる、最低限のコードを提示しておきます '----------------------------------------------------------- Sub test() Dim 開始行, 処理行, 処理列 As Long 開始行 = ActiveCell.Row 処理列 = ActiveCell.Column For 処理行 = 開始行 To Cells(65536, 処理列).End(xlUp).Row If IsNumeric(Cells(処理行, 処理列)) And Not Cells(処理行, 処理列).HasFormula Then Cells(処理行, 処理列).Value = "" End If Next 処理行 End Sub '----------------------------------------------------------- 試し方は、処理したい列の一番上の行を選択し、マクロを実行 エラー処理はしていないので、適宜アレンジしてください

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.1

これでいいですか エクセル数値のみ削除の技 http://www.juno-e.com/excel/waza/wazaxp182.htm

関連するQ&A

専門家に質問してみよう