シートクリアーを目的のメソッド別にVBA最速理解

vbacleareyecatch

エクセルVBAを組み上げる中で、シートのクリアーについて悩むことがあります。
クリアしたいものが上手く消せないことがあります。

今回はメソッド別にこのクリア方法を最速理解します。

こんにちは、じゅんぱ店長(@junpa33)です。

エクセルVBAでシートを再利用するために、一度内容すべてをクリアしたい時があります。

普通は、Clearメソッドを使ってクリア操作を行いますが・・・

シートのクリアーを目的のメソッド別に最速理解

vbaclearp010

シートに記述された内容をクリアするということは、

その書かれている場所は各セルですので、

シート上のすべてのセルに対してクリアメソッドを実行するということになります。

Clearメソッドを実行すると、「値と数式」、「書式」、「コメント」全てがクリアされます。

ただ、全てをクリアするものだけでなく、

「値と数式」だけ、「書式」だけ、「コメント」だけクリアするというメソッドもあります。

これはセルに関わるものについての物ですが、

一方、シートに関わるものをクリアしたいという時があります。

「挿入した画像」や「プリント時の設定」をクリアしたり解除したりするときです。

例示としてこの表に対してクリアーを実行した時を検証します。合計欄はSUM関数で値を表示しています。

セルについて、「値」「罫線」「太字」「中央表示」「カラー設定」「コメント」「行の高さ変更」「列の幅変更」

シートについて、「画像の挿入」「プリントタイトル」

vbaclear001a

説明はこのような順番で行っていきます。

参考記事

With ~ End Withステートメントについてはこちらを参考にしてください。

vbawithstateeyecatch With~End Withの使い方。VBAコードを簡潔に記述する

「値と数式」「書式」「コメント」全てクリアするClearメソッド

Sheet1上のすべてのセルを選択し、Clearメソッドを実行します。

VBA
Option Explicit

Sub クリアA()
        With Worksheets("Sheet1")
            .Cells.Clear
        End With
End Sub

実行結果はこのようになります。全てのデータが消去されました。

が、画像やページ設定はそのまま残っています。

vbaclear002a

「値と数式」をクリアするClearContentsメソッド

Sheet1上のすべてのセルを選択し、ClearContentsメソッドを実行します。

VBA
Sub クリアB()
        With Worksheets("Sheet1")
            .Cells.ClearContents
        End With
End Sub

実行結果はこのようになります。

値と数式だけは消去されました。

が、画像やページ設定はそのまま残っています。

vbaclear003a

「書式」をクリアするClearFormatsメソッド

Sheet1上のすべてのセルを選択し、ClearFormatsメソッドを実行します。

VBA
Sub クリアC()
        With Worksheets("Sheet1")
            .Cells.ClearFormats
        End With
End Sub

実行結果はこのようになります。

罫線、セルのカラー、文字の太字・中央表示が消去されました。

が、画像やページ設定はそのまま残っています。

vbaclear004a

「コメント」をクリアするClearCommentsメソッド

Sheet1上のすべてのセルを選択し、ClearCommentsメソッドを実行します。

VBA
Sub クリアD()
        With Worksheets("Sheet1")
            .Cells.ClearComments
        End With
End Sub

実行結果はこのようになります。

コメントは消去されました。

画像やページ設定はそのまま残っています。

vbaclear005a

「挿入された画像」をクリアするDeleteメソッド

シート上にある画像全てを示すDrawingObjectsをクリアします。

また、このメソッドによって、シート上のすべてのコントロールも削除することができます。

VBA
Sub クリアE()
        With Worksheets("Sheet1")
            .DrawingObjects.Delete
        End With
End Sub

実行結果はこのようになります。

画像は消去されました。

vbaclear006b

「プリントタイトル」をクリアする方法

プリントタイトルをクリアするには、PageSetupオブジェクトのプロパティで設定操作します。

VBA
Sub クリアF()
        With Worksheets("Sheet1")
            .PageSetup.PrintTitleRows = False
        End With
End Sub

実行結果はこうなります。

56行目に表示されていたプリントタイトルがクリアされました。(1行目の表示はクリアされません。)

vbaclear007a
vbaclear007b

「印刷エリア」など印刷時のシート設定のクリア

印刷範囲の解除は「.PrintArea = False」とします。

ヘッダーとフッターは「””」空白を設定することでクリアします。

VBA
Sub クリアG()
        With Worksheets("Sheet1")
            .PageSetup.PrintArea = False
            .PageSetup.RightHeader = ""
            .PageSetup.CenterFooter = ""
        End With
End Sub

今までのものすべてを実行するとこうなる

ClearメソッドとDeleteメソッド、PageSetupプロパティを実行します。

VBA
Sub クリアH()
        With Worksheets("Sheet1")
            .Cells.Clear
            .DrawingObjects.Delete
            .PageSetup.PrintTitleRows = False
            .PageSetup.PrintArea = False
            .PageSetup.RightHeader = ""
            .PageSetup.CenterFooter = ""
        End With
End Sub

実行結果はこのようになります。

これでシート上のデータが全てクリアされました。

vbaclear008a

けれどもよく見るとセルの大きさが変更されたままになっています。

シートを再利用するためには、この部分も元に戻しておきたいですね。

最後にセルの高さと幅をデフォルトに戻す方法

行の高さとか列の幅については見逃しがちな部分です。

シートの再利用時には、シートの見栄えが変わってしまう事が良くあります。

VBA
Sub クリアI()
        With Worksheets("Sheet1")
            .Cells.UseStandardHeight = True
            .Cells.UseStandardWidth = True
        End With
End Sub

実行結果はこのようになります。

vbaclear009a

これで全くの初期状態になりました。

シートのクリアーを目的のメソッド別に最速理解のまとめ

vbaclearp011

シートのクリアを目的とそのコード別に説明してきましたが、

あくまでもClearメソッドは、セルに対して行われるものであることを理解しておきましょう。

シートの設定の解除はClearでは無理ということを理解しておきましょう。

実行コードの記述については、一度に簡潔に記述することが出来ますので、パターン化しておくのも1つの方法だと思います。

エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。

vbastudyeyecatch2 エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です

今回の記事はここまでです。   最後までご覧いただき有難うございました。

エクセルVBA最速理解で必要な知識を集めよう!

エクセルVBA業務ツールで日常の業務改善を行いましょう。

VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。

アンケートでポイ活しよう!!

アンケートに答えれば答えるほど ”使える” ポイントがたまります。

NTTコム サーチ

af_banner01

Dstyle web

dstyleweb_logo
dstyle_320x50-min