- 締切済み
エクセルでセルに入力した数値を削除するボタンを作成したい
セルに入力した数値を一気に削除できるボタンを作成したいです (任意のセルです、表も全部消えるとまずいので) vbaに詳しい方教えてもらえませんか? お願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- hallo-2007
- ベストアンサー率41% (888/2115)
やりたいことが 印刷用のシートか何かがあって、数値を入力して印刷をしたら 入力する前のシートに戻したい というようなことでしょうか。 私であれば、 入力前の空白のシートを、別のシートにコピィしておいて 入力が終了して、クリアにするときは、コピィしておいて空白のシートを、入力したシートに貼り付けます。 マクロでボタンで実施したいというのであれば、 マクロの記録を開始 コピィしておいた空白のシートを選択 シート全体を選択 コピィ 入力済みのシートを選択 貼り付け マクロの記録の終了
- imogasi
- ベストアンサー率27% (4737/17069)
質問があいまいです。質問者が言わんとすることをじっくり考えましたか・ >任意のセルです は書く必要が無いでしょう。意味不明。 >削除できる(ボタン・・) セルの削除では無いでしょう。値を空白にするあたりが表現として 適当かな? しかし質問者が考えている以上の、問題があると思う。 ーー 多分 書式・罫線はそのままにしておきたい。 数式も残したい。 表や項目の見出しなども残したいでしょう。 だからデータ入力部分(セル範囲)だけを質問者が限定するために指定すべきと思う。 厳密にやるのはVBAでも大変です。中身と係わってくるからです。 本当は表のことがわかる設計者で無いと出来ません。 一部残したい大切なデータがある場合が、一般には、考えられるからです。 指定範囲で、式の設定の無いセルの値を空白にするなら 例データ A列 B列 a 12 b 23 c 23 d 234 ーー Sub test01() Dim cl As Range For Each cl In Selection If cl.HasFormula = True Then Else cl = "" End If Next End Sub ーー B1:B4を範囲指定して実行 結果 B1:B4 ー ー ー 234 234が残ったのは =Sheet2!A1 を入れていたからです。 これも消すとなるとプログラムロジックが難しいと思います。 私の言うことがおかしいか良く考えてみてください。 ーー むしろ値を空白にするセルを 個別に またはセル範囲で 列挙的にVBAコードの中に指定しないと完全なものは出来ないでしょう。 そのためには、その表独特の中身やその表独特の式の相互セルの関連を知る必要があります。 一般論ではVBAコードは組めないと思います。
- izmlz
- ベストアンサー率55% (67/120)
たとえば↓のような感じでしょうか? マクロを実行するとインプットボックスが出て、範囲を指定します。キャンセルボタンで何もしません。 Sub test() Dim Rng As Range On Error Resume Next Set Rng = Application.InputBox("数値データだけを削除したい表のセルのどれか一つを選択してください", Type:=8) On Error GoTo 0 If Rng Is Nothing Then Exit Sub Rng.CurrentRegion.SpecialCells(xlCellTypeConstants, 1).ClearContents End Sub
- tomname
- ベストアンサー率20% (3/15)
一般のやり方だと 範囲を選択して Ctrl+G セル選択を押して 定数をクリックしてOK で数値を入力したセルのみ選択するので 削除!vbaなら上記をマクロ記録したら?