目次
指定した範囲の入力済みデータを消去する
エクセルに名前がありランダムに番号を振って入力したり、抽選を行ってから番号を振ったりした後に、次回使う為に入力したデータを消去してからエクセルファイルを閉じたりって作業ありませんか?
ボウリングのリーグ戦でのレーン抽選を行った後に、参加選手名にレーン番号と投球順を割り当てると自動的にレコードシートに反映してから、印刷を行います。
その後にエクセルファイルを閉じるのですが、この時にユーザーフォームに配置した【保存終了】ボタンを押すと、自動的にレーン抽選データを消去してから上書き保存してファイルを閉じます。
波乗りアヒル
便利なボタンだけどどうやって設定するの?
データの消去はClearメソッドを使うのよ
ClearContentsを使ってデータ消去
この画像は「ボウリング成績表~LTB個人リーグ編」でも使用している【MENU】画面です。
この画面(ユーザーフォーム)の使い方については、ここでは省略します。
この画面上の【保存終了】ボタンを押せばレーン抽選データを消去してから、上書き保存をするようにExcel-VBAコードを書き込んでいます。
実際には、レーン抽選のデータをクリアしてから上書き保存しています。
Private Sub CommandButton14_Click()
Msg = MsgBox(“レーン抽選データ消去して保存終了しますか?”, Buttons:=vbYesNo + vbQuestion)
If Msg = vbYes Then
Sheets(“HOME”).Range(“AP3:AP42,AW3:AW42,AX3:AX42”).ClearContents
Application.Quit
ThisWorkbook.Close savechanges:=True
End If
End Sub
Msg = MsgBox(“レーン抽選データ消去して保存終了しますか?”, Buttons:=vbYesNo + vbQuestion)
If Msg = vbYes Then
Sheets(“HOME”).Range(“AP3:AP42,AW3:AW42,AX3:AX42”).ClearContents
Application.Quit
ThisWorkbook.Close savechanges:=True
End If
End Sub
- コマンドボタン14を押したら
- メッセージを表示して「レーン抽選データ消去して保存終了しますか?」を「はい」「いいえ」で選択させます。
- もし「はい」を選んだら
- シート名「HOME」のセルAP3~AP42とAW3~AW42とAX3~AX42の各範囲の値を消す(クリア)
- エクセルファイルを閉じる
- 上書き保存する
- メッセージIFステートメント終了
- マクロ記述終了
波乗りアヒル
赤いアンダーラインマーカー部分のExcel-VBAコードがデータクリアしたいセルの範囲です。
ここでは、いきなりセルの範囲を3か所記載していますので、こう少し細かく見ていきましょう。
ClearContentsを使うには、データ消去したいセル番号を書いてからClearContentsで挟んであげます。
開いているシート上でひとつのセルのデータ消去
Range(“AP3”).CrearContents
セル「AP3」の入力済みデータ(値)を消去(クリア)する
この場合シート名が指示されていないので、開いているシート上でないと、全く違うシートのセルAP3の値が消去されてしまうのでご注意を!
シート名を指定してひとつのセルのデータ消去
Sheets(“HOME”).Range(“AP3”).ClearContents
シート名「HOME」のセル「AP3」の入力済みデータ(値)を消去(クリア)する
シート名を付け加えるだけなので、トラブルを防ぐためにもシート名を加えておく方が大事ですよ。
2か所のセルのデータ消去
Range(“AP3,AW4”).CrearContents
セル「AP3とAW4」の入力済みデータ(値)を消去(クリア)する
セル番号の間に「,」を付けるだけです。
セルの範囲を指定してデータ消去
Range(“AP3:AP42”).CrearContents
セル「AP3~AP42」の範囲の入力済みデータ(値)を消去(クリア)する
セル番号の間に「:」を付けるだけです。
ここまでの組み合わせで、3か所のセルの範囲のデータをクリアって作りました。
ここで使用している関連Excel-VBAコードもチェックしてね

波乗りアヒル
Excel-VBAを使えば数分かかる作業がたったの1秒で終了しますよ!