大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAでセル範囲の値のみをクリアする方法について、ご紹介します。やり方は、RangeとClearを使います。Clearは、ClearContentsや、ClearFormatsなどありますので、併せて使い方を解説していきます。

はじめに

この記事では、セル範囲の値のみをクリアする方法について、ご紹介します。

値のみのクリアは、ClearCommentsがありますけども、空白""をセルに代入した方が簡単です。

値のみのクリアだけでなく、書式や、コメント、ハイパーリンクのクリアなどがあります。

実務で使う例なども交えて、解説していきます。

この記事で紹介すること

  • 値のみをクリアする
  • さまざまなセルのクリア

目次から見たい項目へ移動すると便利ですよ。

目次

VBAでセルをクリアする方法

VBAでセルの文字や、書式などをクリアする方法をまとめました。

こんな感じです。

With ActiveSheet
    .Range("A1").ClearContents '値のみクリア
    .Range("A1") = "" '値のみクリア
    .Range("A1").Clear 'すべてクリア
    .Range("A1").ClearFormats '書式のみクリア
    .Range("A1").ClearComments 'コメントのみクリア
    .Range("A1").ClearHyperlinks 'ハイパーリンクのみクリア
    .Range("A1").Hyperlinks.Delete 'ハイパーリンクと書式をクリア
End With

では、実際にVBAコードを実行してみます。

VBAでセル範囲の値のみをクリア

VBAで、セル範囲の値のみを、クリアする方法です。

クリアの中でも一番使うものですね。

RangeとClearContentsを使う

セル範囲の値のみをクリアするには、RangeとClearContentsを使います。

次のような表を用意しました。

用意した表

用意した表

セルに値と、罫線を入力しました。

値のみを削除してみます。

VBAコードは、次のように記載します。

Sub TEST1()
    
    '値のみクリア
    ActiveSheet.Range("A1:B2").ClearContents
    
End Sub

実行してみます。

値のみをクリアした結果

値のみを削除した結果

結果は、値のみを削除できました。罫線はそのまま残っています。

ちなみ、値の削除は、『Range(〇〇) = ""』でもできます。

『Range(〇〇) = ""』の方が簡単です

値の削除を、『Range(〇〇) = ""』を使ってやってみます。

『ClearContents』を使うより、『Range(〇〇) = ""』を使う方が簡単です。

では、先ほどと同じ表で試してみます。

使う表

使う表

値のみを削除する、VBAコードはこちらになります。

Sub TEST2()
    
    '値のみクリア
    ActiveSheet.Range("A1:B2") = ""
    
End Sub

実行してみます。

Range = ""で値のみをクリア

Range =

値のみを削除できました。罫線は、そのままです。

値のみ削除の場合は、『Range(〇〇) = ""』が簡単です。

VBAでセルのすべてをクリア

つづいて、VBAでセルのすべてをクリアする方法です。

すべてとは、値はもちろん、書式や、コメントをすべて削除する、ということです。

RangeとClearを使う

セルのすべてをクリアする方法は、RangeとClearを使います。

では、『"A1:C3"』の範囲で、Clearを使って、セルのすべてをクリアするVBAコードです。

Sub TEST3()
    
    'すべてクリア
    ActiveSheet.Range("A1:B2").Clear
    
End Sub

すべてをクリアしてみる

では、先ほど使った表で、セルのすべてをクリアしてみます。

使った表

使った表

値と罫線が入力されています。

実行してみます。

Clearですべてクリア

Clearでセル範囲のデータをすべてクリアした結果

『"A1:C3"』のセル範囲で、値と、罫線がクリアされました。

削除とは違いますね。値を初期の状態にするイメージです。

他にも使いそうなセルのクリア

他にも使いそうなセルのクリアについて、ご紹介します。

書式をクリア(ClearFormats)

書式だけをクリアする方法です。ClearFormatsを使います。

書式をクリアするVBAコードです。

Sub TEST4()
    
    '書式のみクリア
    ActiveSheet.Range("A1:B2").ClearFormats
    
End Sub

先ほどと同じ表を使って実行してみます。

使った表

使った表

実行してみます。

ClearFormatsで書式のみをクリア

ClearFormatsで書式のみをクリアした結果

書式のみをクリアできました。値は残ったままです。

コメントをクリア(ClearComments)

続いて、コメントのみをクリアするVBAコードです。

Sub TEST5()
    
    'コメントのみクリア
    ActiveSheet.Range("B3:D3").ClearComments
    
End Sub

コメントをセルに入力してみました。

コメントを入力

セルにコメントを入力してみた

この表から、セル『"A1:C3"』の範囲で、コメントのみをクリアしてみます。

コメントのみをクリア

セルからコメントのみをクリアした結果

セルから、コメントのみをクリアできました。

値や書式は、残ったままです。

ハイパーリンクをクリア(ClearHyperlinks)

ハイパーリンクをクリアする方法です。ClearHyperlinksを使います。

ハイパーリンクをクリアするVBAコードです。

Sub TEST6()
    
    'ハイパーリンクのみクリア
    ActiveSheet.Range("B3").ClearHyperlinks
    
End Sub

ハイパーリンクをセルに設定しました。

ハイパーリンクを設定

ハイパーリンクを設定した表

手のマークになっていますね。ハイパーリンクが設定されていることがわかります。

では、VBAコードを実行してみます。

ハイパーリンクをクリア

ハイパーリンクをクリアした結果

ハイパーリンクがクリアされました。

プラスのマークなので、ハイパーリンクはクリアされました。

でも、書式は残ったままです。

書式はそのまま

ハイパーリンクをクリアしたけど書式はそのまま

文字が青色になって、下線は入ったままです。

全部消したい場合は、ハイパーリンクの削除が使えます。

ハイパーリンクの削除

ハイパーリンクを削除する方法です。書式もすべて削除されます。

使うのは、Hyperlinks.Deleteです。

VBAコードはこんな感じです。

Sub TEST7()
    
    'ハイパーリンクと書式をクリア
    ActiveSheet.Range("B3").Hyperlinks.Delete
    
End Sub

では、やってみます。

ハイパーリンクを作成

ハイパーリンクを作成

VBAコードを実行します。

ハイパーリンクを削除

ハイパーリンクを削除

書式ごと、ハイパーリンクが削除されました。

罫線もクリアされています。ハイパーリンク、ちょっと面倒ですね。

ダブルクリックでコメントを表示・非表示

少し実務的なVBAコードを作成してみます。

ClearCommentsを使えば、コメントのみを削除できましたよね。

これを利用して、セルの数式をコメントで表示したり、非表示にしたりするVBAコードを作成してみます。

説明するために、セルに入力されている値を表示させたい場合に、使えます。

セルの値って、数式バーに表示されますけども、拡大できないですからね。小さいんですよね。

コメントは大きさを変えられるので、見やすくなります。

VBAコード

ダブルクリックで、セルに入力されている値を表示したり、クリアしたりするVBAコードです。

『ワークシートのコード』に記載します。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    
    'ダブルクリック後のアクティブ状態を解除
    Cancel = True
    
    'コメントがない場合
    If Target.Comment Is Nothing Then
        'コメントを追加
        Set a = Target.AddComment
        '表示
        a.Visible = True
        'セルの値をコメントに入力
        a.Text Text:=Target.Formula
        'コメントのサイズを22にする
        a.Shape.TextFrame.Characters.Font.Size = 22
    'コメントがある場合
    Else
        'コメントをクリア
        Target.ClearComments
    End If
    
End Sub

ダブルクリックで実行する、ワークシートのイベントコードを使っています。

コメントがないところでダブルクリックすると、コメントが表示されます。

コメントがあるセルでダブルクリックすると、コメントがクリアする、ClearCommentsを使っています。

コメントの表示・非表示を切り替え

ClearCommentsの活用例で、コメントの表示・非表示を、ダブルクリックで実行する、VBAコードを実行してみます。

こんな表を用意しました。

合計の列には、数式が入っています。

使った表

数式が入っている表を用意

数式が入っている列に、コメントを追加します。

ダブルクリックします。

ダブルクリックでコメントを追加

ダブルクリックでコメントを追加

セルに入力された数式が、表示されました。

大きくて見やすいです。説明するのときに、使えます。

コメントがあるセルで、ダブルクリックしてみます。

ダブルクリックでコメントをクリア

ダブルクリックでコメントをクリア

ClearCommentsで、コメントをクリアしました。

というような感じで、ClearCommentsを使えます。

おわりに

この記事では、セル範囲の値のみをクリアする方法について、ご紹介しました。

セル範囲の値のみをクリアするには、『Range(〇〇) = ""』が楽です。

値だけでなく、書式や、コメント、ハイパーリンクのみを、クリアする方法もあります。

場面に応じて、使い分けるといいですね。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す