教えて!gooグレードポイントがdポイントに!

マクロのコードでクリアボタンを押すと数式まで消えてしまいます。
数式だけ残してクリアするコードを教えて頂けませんか?
お願い致します。

質問者からの補足コメント

  • Sub DataClear()

    Dim r As Long

    r = MsgBox("データをクリアしますか?", vbOKCancel)

    If r <> 1 Then Exit Sub

    Range("AreaA").ClearContents
    Range("AreaB").ClearContents
    Range("AreaC").ClearContents

    End Sub
    Private Sub CommandButton1_Click()
    消去
    End Sub

    のようなコードがあり、このシートの”D5”に数式を入れたのですが、クリアボタンを押すと数式まで消えて・・次からデータを取ってこなくなるのです。

    教えてください・・お願いします。

      補足日時:2022/01/21 15:53
教えて!goo グレード

A 回答 (7件)

ん?どうしたいのかな?


もう一度丁寧に質問してみて。
    • good
    • 1

#3です


名前の管理で D5セルを外して設定し直す
    • good
    • 0
この回答へのお礼

ありがとうございます。
できましたぁ~~~。

お礼日時:2022/01/21 16:39

やりたいのはこういうことかな。



Dim myCell As Variant
For Each myCell In Sheets(1).Range("E1:G10")
If myCell.HasFormula Then
Else
myCell.ClearContents
End If
Next
    • good
    • 0

こんにちは。



もう少し、詳細の記載をお願いしたいのと、コードがあれば、そのアップも
できると良いと思います。

ある範囲を選択した状態で、数字や文字だけが入ったセルと、数式が入った
セルが混在していて、数式までクリアされてしまうと思って答えます。
違ったら、もう少し説明をお願いします。

クリアしたい範囲を選択 → Ctrl + G で セル選択
 → 定数をチェックして OK をクリック → DELETEキーで削除
これで、文字や数字が直接入力されているセルがクリアされるかと。
式は残ったままだと思います。

上記をマクロにしたい場合は、マクロの記録で記録できると思います。
https://excel-ubara.com/excelvba1/EXCELVBA303.html
    • good
    • 1

こんにちは、


数式を残す場合は、対象のセルをマクロのコードにある実行セル範囲から外す必要があります。
また、数式を残すと計算された結果が表示されますので
その表示自体を消して数式を残す場合、参照先セルをクリアーすると言う事になりますが、いわゆる消したいセルの数式はIF文で参照先="",""のような
関数を含む数式にする必要があります。

消すと言う意味で色々変わってくると思いますが、
数式で計算されたものではなく、
マクロで出力されたセルの値や
手作業で入力した値を消す
と言うような考え方の方が理解し易いかも知れませんね
    • good
    • 1

数式を入れているということはどこか他のセルを参照することでその式の結果が出てるんですよね?


だから参照しているセルをクリアするようなコードにするんですよ。
    • good
    • 1

え?


何を言ってるの?
数式が入ったセルを空欄にするために「クリア」するのではないのですか。

ならばどうしたいの?
それを示していただかなければ、解決方法のアドバイスはできませんよ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング