- ベストアンサー
VBAで関数が記載されたセルを見つける
Excel2002です。 ある列(約70)の値を消して空白にするという処理をしたいのですが、 その列に関数が記述されているセルとただの数値が記載されているセル、空白のセル の3種類が混在しており、関数が記述されているセルは、空白にせずに残す。 ということをしたいと思います。 関数が記載されている・・・ということを区別するやり方がわかりません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
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)
#2です。書き漏らしましたが、 実行する前に対象とするセル範囲を範囲指定して、やってください。 固定するなら For Each cl In Selection を For Each cl In Range("A1:H30")などとしてください。
- hana-hana3
- ベストアンサー率31% (4940/15541)
記録マクロで下記の操作を記録すれば良いでしょう。 ---------------------------------------------- メニュー[編集]-[ジャンプ]をクリック ↓ [ジャンプ]ダイアログ-[セル選択]ボタンをクリック ↓ [選択オプション]ダイアログ-[定数]オプションをクリック ↓ [数値]チェックだけをOnにして、[文字][論理値][エラー値]チェックをOffに ↓ [選択オプション]ダイアログ-[OK]ボタンをクリック ↓ 数値だけが選択されていることを確認して[Delete]キーを押す ------------------------------------------------ 記録されたマクロを簡単にすると下記の通り。 Cells.SpecialCells(xlCellTypeConstants).ClearContents