オーロラさんの勉強帳

IT企業勤務。データベース、Excel、Excel VBA、ネットワーク、LinuxなどIT関連のことを主に書いていきます。少しでもお役に立てたら幸いです。

【Excel VBA エキスパート ベーシック】メソッドpart2 消去系 ~Clear・ClearContents・ClearFormats~ (VBA入門16)

 

Clearメソッド

セルに設定されている全てのデータ(数式や書式、値)を消去します。

 

以下のサンプルコードでは、セルに設定されている値や書式をすべて消去します。

f:id:auroralights:20201206193755p:plain

f:id:auroralights:20201206193806p:plain

サンプルコードの解説

  1. Dim tmp As Range Range型変数tmpを宣言
  2. Set tmp = Range("A1").CurrentRegion 変数tmpにセルA1を含む空白行、列に囲まれたデータが入ったセル範囲を代入
  3. tmp.clear 変数tmpに代入したセル範囲のデータを全て消去

ClearContentsメソッド

セルに設定されている値、数式を消去します。

ClearContentsメソッドは、書式を消去しません。書式を消去する場合はClearメソッドを使います。

 

以下のサンプルコードでは、セルの値を消去しています。

f:id:auroralights:20201206194032p:plain

f:id:auroralights:20201206194004p:plain

サンプルコードの解説

  1. Dim tmp As Range Range型変数tmpを宣言
  2. Set tmp = Worksheets("Sheet1").Range("A1").CurrentRegion 変数tmpにSheet1のセルA1を含む空白行、列に囲まれたデータが入ったセル範囲を代入
    ※レンジオブジェクトの上位オブジェクトWorksheetオブジェクトを指定してみました。上位オブジェクトを省略した場合、省略しない場合も復習しましょう。
  3. tmp.ClearContents 変数tmpに代入したセル範囲の値を全て消去 ※書式は残ります

ClearFormatsメソッド

セルに設定されている書式を消去します。

セルの値を残したまま、書式だけを消去したい場合に使います。

 

以下のセルのサンプルコードでは書式のみ消去しています。

f:id:auroralights:20201206194207p:plain

 

f:id:auroralights:20201206194143p:plain

サンプルコードの解説

  1. Dim tmp As Range Range型変数tmpを宣言
  2. Set tmp = Worksheets("Sheet1").Range("A1").CurrentRegion 変数tmpにSheet1のセルA1を含む空白行、列に囲まれたデータが入ったセル範囲を代入
    ※レンジオブジェクトの上位オブジェクトWorksheetオブジェクトを指定してみました。上位オブジェクトを省略した場合、省略しない場合も復習しましょう。
  3. tmp.ClearFormats 変数tmpに代入したセル範囲の書式を全て消去 ※値は残ります

 

サンプルコードに登場したCurrentRegionプロパティは以下の記事を参照ください。

 

オブジェクトの省略については
auroralights.hatenablog.com