空欄セルを範囲内から探して空欄セルに値を入れる方法

VBAセルの操作 VBA
VBAセルの操作

スポンサーリンク


スポンサーリンク


スポンサーリンク

空欄セルに0をまとめて入力する

様々な表をエクセルで作ることがあり、表の中のデータを並び替えをする時に、セルが空欄だとエラーになることありませんか?

もちろんエラーにならないことの方が多いですが。

ワークシート上で【データ】➡【並び替え】を選ぶ場合は、データの入っているセルを選んで並び替えを実行するので、あまり問題がないかもしれませんが、Excel-VBAを使って並び替えを自動化させる、データが空欄の表でも並び替えなくてはいけない場合もありますね。

空欄セルが邪魔をする

毎回必ずではありませんが、大きい順・小さい順にかかわらず、例えば大きい順に並び替えをした場合、上からデータの大きい数字の順に小さい数字になるのが当たり前です。

ここに疑問を持つ方はいないでしょう。

ところが、理由はわかりませんが、ある時、空欄が先に、その次にデータの大きい順に並んでしまうことが起きてしまいました。そんな経験ありませんか?

空欄セルに値を入れれば解決

そんな時は単純に空欄セルに数字の0を入れれば解決できます。が、並び替える範囲が広いと意外とめんどくさい。

そこでVBAコードでしてした範囲【Range(“A1:E10”)】で空白セルだけ探し出して数字の0を入れてしまいましょう。

空白セルだけを見つけ、まとめて一括操作するにはSpecialCellsメソッドを使います。

SpecialCellsメソッド

SpecialCellsメソッドとは、任意の範囲を選んで特定の条件を満たした全て載せるをまとめて見つけ出してくれます。

使い方は簡単です。

SpecialCellsのあとに条件を加えてセットで使用します。

ここでは、選んだセルの範囲内の空白セルを見つけ出して欲しいので、xlCellTypeBlanksを付け加えます。

そして、見つけ出した空白セルに数字の0を入れるので、.Value=0を加えます。

ユーザーフォームに配置したコマンドボタンを押した時に実行する出来上がったコードは下記のようになります。

【参考】オリジナルの入力画面を作れるユーザーフォームの作り方

Private Sub CommandButton1_Click()
Range(“A1:E10”).SpecialCells(xlCellTypeBlanks).Value = 0
End Sub

  1. コマンドボタン(CommandButton1)を押したら
  2. セルA1~E10の範囲の中で空欄のセルを見つけて「0」を入力する
  3. マクロ終了

これで、空欄セルを範囲内から探して空欄セルに値を入れる事ができるようになりましたね。

SpecialCellsメソッドの引数

SpecialCellsメソッドには取得するセルの種類は全部で10種類あります。

xlCellType定数
SpecialCellsメソッドが引数としている定数セルの内容
xlCellTypeAllFormatConditions条件付き書式が設定されているセル
xlCellTypeAllValidation入力規則が設定されているセル
xlCellTypeBlanks空欄のセル
xlCellTypeCommentsコメントが含まれているセル
xlCellTypeConstants定数が含まれているセル
xlCellTypeFormulas数式が含まれているセル
xlCellTypeLastCell使われたセル範囲内の最後のセル
xlCellTypeSameFormatConditions同じ条件付き書式が設定されているセル
xlCellTypeSameValidation同じ入力規則が設定されているセル
xlCellTypeVisible全ての可視セル

エラーを防ぐには?
SpecialCellsメソッドで指定した種類のセルが選択範囲にある事が必要な為、選択範囲に該当する種類のセルが無いとエラーになります。

例えば、選択範囲内に空欄セルが無いのにxlCellTypeBlanksで実行するとエラーになります。

SpecialCellsメソッド

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

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

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

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

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

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

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