Excel-VBA指定した範囲のセルの値をクリアする方法

パソコン難しい Excel-VBA
スポンサーリンク

こんにちは、とりっぷぼうるです。

元々エクセルとは全く縁のない生活をしていましたが、人員不足などで少しでもデータ入力作業や集計作業を効率化するしか方法が無く、仕方がなくエクセルに取り組み始まました。

なぜならば、大きな会社ならば専用ソフトやクラウド上でデータ集計や管理を行うのでしょうけど、小さなところではそのようなお金もないのでエクセルで解決するしか方法が無いのですよね。

このような理由からエクセルに取り組み始めましたので、当然ながらエクセルの専門知識もなく、学校に通うこともできずにただ単にエクセルの書籍とにらめっこしながら取り組んでいます。

波乗りアヒル
波乗りアヒル

でも書籍のままだと実用的でないことが多く、VBAコードを組み合わせてみたら動いた!という実用例・体験談を書いています。

Excel-VBAの専門学校通学や・資格があるわけではありませんので、あくまでエラーにならずに動いてくれているVBAコードになりますので、掲載のVBAコードが同じように動く保証はできません。
実際に動いているエクセルは2009と2016です。

指定した範囲の入力済みデータを消去する

エクセルに名前がありランダムに番号を振って入力したり、抽選を行ってから番号を振ったりした後に、次回使う為に入力したデータを消去してからエクセルファイルを閉じたりって作業ありませんか?

ボウリングのリーグ戦でのレーン抽選を行った後に、参加選手名にレーン番号と投球順を割り当てると自動的にレコードシートに反映してから、印刷を行います。

その後にエクセルファイルを閉じるのですが、この時にユーザーフォームに配置した【保存終了】ボタンを押すと、自動的にレーン抽選データを消去してから上書き保存してファイルを閉じます。

波乗りアヒル
波乗りアヒル

便利なボタンだけどどうやって設定するの?

データの消去はClearメソッドを使うのよ

ClearContentsを使ってデータ消去

ボウリングリーグ戦MENU~LTB編

この画像は「ボウリング成績表~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
  1. コマンドボタン14を押したら
  2. メッセージを表示して「レーン抽選データ消去して保存終了しますか?」を「はい」「いいえ」で選択させます。
  3. もし「はい」を選んだら
  4. シート名「HOME」のセルAP3~AP42とAW3~AW42とAX3~AX42の各範囲の値を消す(クリア)
  5. エクセルファイルを閉じる
  6. 上書き保存する
  7. メッセージIFステートメント終了
  8. マクロ記述終了
波乗りアヒル
波乗りアヒル

赤いアンダーラインマーカー部分の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コードもチェックしてね

各コントロールまとめて転記シリーズ

ユーザーフォームを使うと配置したコントロール(テキストボックスやラベルなど)とセルとの間で値のやり取りが多くなります。

よく使うのでまとめてみました。

値の場所転記したい場所説明ページ
セルの値ラベル名VBAコード
セルの値テキストボックスの値VBAコード
セルの値コマンドボタンの表示名VBAコード
セルの値セルの値VBAコード
テキストボックス入力値セルの値VBAコード
波乗りアヒル
波乗りアヒル

成績表作成には知っておきたいExcel-VBAもくじ

ボウリングハンデキャップのつけ方
HDCPの種類はリーグのルールにより複雑に ボウリングの成績表(リーグ戦)で必ず必要になるのが、ハンデキャップ(HDCP)です。 ボウリングご予約の時に一番多く使われているのが、女性にだけハンデキャップをつけてあげることが多いですね。 だいだい何点ぐらいのハンデキャップが多いの?
ボウリングリーグ対戦表の数字を名前に自動変換する方法
リーグ戦の対戦表をエクセルで作る時、数字で表されている番号を名前に自動的に変換できると作業時間が短くなり効率的ですね。たった2つのエクセル関数を使うだけで、簡単にできるんです。今回の回戦数を入力するだけで一発変換完了。もちろんお客様にスケジュール対戦表として渡すことも簡単ですよ。
人数に応じてリーグ対戦表を自動選択する方法
複数の表があり、条件に合った表を選んで、さらにセルの値を選んで数字を名前に自動変換できると、とても便利なエクセルができますよね。ボウリングのリーグ対戦表も人数により表が異なるので、参加人数が決まったら、自動的に表を選んで対戦番号がこれも自動的に参加者名に変換されると便利で作業効率がアップして時間短縮になりますよ。
波乗りアヒル
波乗りアヒル

エクセルの勉強お疲れ様です。ちょっとひと休みしませんか?

コメント