【VBA道場】#30 空白セルを操作する

ExcelVBA

【VBA道場】#30 空白セルを操作する



問題

空白のセルに「欠席」と表示してください。

 

完成見本

 

解答

Sub vba_doujyou_30()

  'B1~B10のセルの中で空白のセルに「欠席」を入力する
  Range("B1:B10").SpecialCells(xlCellTypeBlanks) = "欠席"

End Sub

サンプルファイル(マクロ無)

マクロなしのファイルはこちらからご利用いただけます。

 

サンプルファイル(マクロ有)

今回のマクロはこちらからダウンロードしてご使用いただけます。

 

解説

Object.SpecialCells(セルの表示形式,バリアントの型)
※バリアントの型は省略可能

 

VBA道場16で、セルが空白かどうか判断しました。

’もしA1セルが空白だったら
If Sheets("Sheet1").Range("A1").Value = "" Then
    Range("B1").Value = "空白です"   ’「空白です」とB1セルに表示
Else
    Range("B1").Value = "入力されています" ’空欄でなかったら「入力されています」とB1セルに表示
End If

 

これよりもさらに簡単に空白セルを操作する方法があります。
それが、SpecialCellsメソッドです。

 

このメソッドを使うと、空白セルだけを一括で取得できます。

 

SpecialCellsメソッドは、「ホーム」タブ→「編集」→「検索と選択」→「ジャンプ」を実行して表示される「ジャンプ」ダイアログボックスで「セル選択」を実行したときと同じ働きをします。

 

では、今回のコードを見ていきましょう。

'B1~B10のセルの中で空白のセルに「欠席」を入力する
Range("B1:B10").SpecialCells(xlCellTypeBlanks) = "欠席"

 

最初のRangeオブジェクトで、どこの範囲を検索するかを指定します。
今回は、B1~B10セルとします。

 

続いて、SpecialCellsメソッドを使用します。
今回は空白セルを検索したかったので、「xlCellTypeBlanks」を使用しました。

他にも、SpecialCellsメソッドの引数には下記のようなものが指定できます。

xlCellTypeAllFormatConditions 表示形式が設定されているセル
xlCellTypeAllValidation 条件の設定が含まれているセル
xlCellTypeBlanks 空白セル
xlCellTypeComments コメントが含まれているセル
xlCellTypeConstants 定数が含まれているセル
xlCellTypeFormulas 数式が含まれているセル
xlCellTypeLastCell 使われたセル範囲内の最後のセル
xlCellTypeSameFormatConditions 同じ表示形式が設定されているセル
xlCellTypeSameValidation 同じ条件の設定が含まれているセル
xlCellTypeVisible すべての可視セル

 

そして最後に、取得したセルに対して何を実行するかを書きます。
今回は、空白セルに「欠席」を入力されるように記述しました。

Range("B1:B10").SpecialCells(xlCellTypeBlanks) = "欠席"

 

おわりに

今回はSpecialCellsメソッドについて学習しました。
SpecialCellsメソッドは、If文を使わなくとも簡単にセルに飛ぶことができるので非常に便利です。

是非使いこなしていきましょう。

今日はここまで!

 

おすすめ参考書

Amazon

たった1秒で仕事が片付くExcel自動化の教科書

いちばんやさしいExcelVBAの教本

ExcelVBA逆引き辞典 パーフェクト

楽天

いちばんやさしいExcelVBA

 

 

すらすら読めるExcelVBA

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

スラスラ読めるExcel VBAふりがなプログラミング [ リブロワークス ]
価格:2035円(税込、送料無料) (2021/4/22時点)

楽天で購入

 

 

 

VBA逆引き大辞典

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Excel VBA逆引き辞典パーフェクト第3版 [ 田中亨 ]
価格:2838円(税込、送料無料) (2021/4/22時点)

楽天で購入

 

 

タイトルとURLをコピーしました