• ベストアンサー

VBAで関数が記載されたセルを見つける

Excel2002です。 ある列(約70)の値を消して空白にするという処理をしたいのですが、 その列に関数が記述されているセルとただの数値が記載されているセル、空白のセル の3種類が混在しており、関数が記述されているセルは、空白にせずに残す。 ということをしたいと思います。 関数が記載されている・・・ということを区別するやり方がわかりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

If cl.HasFormula Thenです。 ーー 下記を実行すればZ列に、セルの番地と式の内容とが出ます。 Sub test01() Dim cl As Range k = 1 For Each cl In Selection If cl.HasFormula Then Cells(k, "Z") = cl.Address & " " & cl.Formula k = k + 1 End If Next End Sub を実行してください。 ーー 式のないセルは Sub test01() Dim cl As Range k = 1 For Each cl In Selection If cl.HasFormula Then Cells(k, "Z") = cl.Address & " " & cl.Formula k = k + 1 End If Next End Sub

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

#2です。書き漏らしましたが、 実行する前に対象とするセル範囲を範囲指定して、やってください。 固定するなら For Each cl In Selection を For Each cl In Range("A1:H30")などとしてください。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

記録マクロで下記の操作を記録すれば良いでしょう。 ---------------------------------------------- メニュー[編集]-[ジャンプ]をクリック  ↓ [ジャンプ]ダイアログ-[セル選択]ボタンをクリック  ↓ [選択オプション]ダイアログ-[定数]オプションをクリック  ↓ [数値]チェックだけをOnにして、[文字][論理値][エラー値]チェックをOffに  ↓ [選択オプション]ダイアログ-[OK]ボタンをクリック  ↓ 数値だけが選択されていることを確認して[Delete]キーを押す ------------------------------------------------ 記録されたマクロを簡単にすると下記の通り。 Cells.SpecialCells(xlCellTypeConstants).ClearContents

関連するQ&A