空白セルに0を選択範囲まとめて入力

エクセルVBAセルの操作 セルの操作

表の中のセル全てにデータが入力されていれば問題ないのですが、時々空白のままってありますよね。

その時にデータを並べ替えたら空白セルが上位になってしまった経験ありませんか?

スポンサーリンク

空白セルが邪魔している

成績表などでは成績順に並べ替えを行いますが、高得点順に(大きい順)上から並べ替えるのが一般的です。

ところが、全員の点数が入力されていれば問題ないのですが、欠席などで点数が0点ではなく空白の時に問題が発生します。

そうです、空白セルがあるままで並べ替えを行うと、先に(上位に)空白セルの人が、その下に高得点順に並んでしまいます。

<span class="fz-12px">とりっぷぼうる</span>
とりっぷぼうる

空白セルが優先されてしまった為です。

空白セルに0を入れれば解決

そんな時は単純に空白セルを探して数字の0を入れれば解決できます。

が、並べ替える範囲が広い空白セルを探して0入力するの意外とめんどくさいですよね。

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

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

SpecialCellsメソッド

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

使い方は簡単で、SpecialCellsのあとに条件を加えて使用します。

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

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

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

空白セルに0をまとめて入れる

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

VBA解説
  1. コマンドボタン1が押されたら
  2. セルA1~E10の範囲の中で空白セルを見つけたら「0」を入力する
  3. マクロ終了

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

SpecialCellsメソッドの引数

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

xlCellType定数
SpecialCellsメソッドが引数としている定数 セルの内容
xlCellTypeAllFormatConditions 条件付き書式が設定されているセル
xlCellTypeAllValidation 入力規則が設定されているセル
xlCellTypeBlanks 空欄のセル
xlCellTypeComments コメントが含まれているセル
xlCellTypeConstants 定数が含まれているセル
xlCellTypeFormulas 数式が含まれているセル
xlCellTypeLastCell 使われたセル範囲内の最後のセル
xlCellTypeSameFormatConditions 同じ条件付き書式が設定されているセル
xlCellTypeSameValidation 同じ入力規則が設定されているセル
xlCellTypeVisible 全ての可視セル
<span class="fz-12px">とりっぷぼうる</span>
とりっぷぼうる

エラーを防ぐには!

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

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

SpecialCellsメソッド
エラー表示