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

vbacleareyecatch

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

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

 

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

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

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

 

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

 

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

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

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

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

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

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

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

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

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

 

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

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

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

vbaclear001a

 

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

 

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

 

Clearメソッドの実行

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

コード
Sub クリアA()

With Worksheets("Sheet1")
    .Cells.Clear
End With

End Sub

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

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

vbaclear002a

 

 

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

 

ClearContentsメソッドの実行

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

コード
Sub クリアB()

With Worksheets("Sheet1")
    .Cells.ClearContents
End With

End Sub

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

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

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

 

vbaclear003a

 

 

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

 

ClearFormatsメソッドの実行

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

コード
Sub クリアC()

With Worksheets("Sheet1")
    .Cells.ClearFormats
End With

End Sub

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

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

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

vbaclear004a

 

 

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

 

ClearCommentsメソッドの実行

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

コード
Sub クリアD()

With Worksheets("Sheet1")
    .Cells.ClearComments
End With

End Sub

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

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

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

vbaclear005a

 

 

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

 

Deleteメソッドの実行

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

コード
Sub クリアE()

With Worksheets("Sheet1")
    .DrawingObjects.Delete
End With

End Sub

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

画像は消去されました。

vbaclear006b

 

 

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

 

ページセットアップオブジェクト1

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

コード
Sub クリアF()

With Worksheets("Sheet1")
    .PageSetup.PrintTitleRows = False
End With

End Sub

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

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

vbaclear007a
vbaclear007b

 

 

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

 

ページセットアップオブジェクト2

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

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

コード
Sub クリアG()

With Worksheets("Sheet1")
    .PageSetup.PrintArea = False
    .PageSetup.RightHeader = ""
    .PageSetup.CenterFooter = ""
End With

End Sub

 

 

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

 

今までのものを実行する

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

コード
Sub クリアH()

With Worksheets("Sheet1")
    .Cells.Clear
    .DrawingObjects.Delete
    .PageSetup.PrintTitleRows = False
    .PageSetup.PrintArea = False
    .PageSetup.RightHeader = ""
    .PageSetup.CenterFooter = ""
End With

End Sub

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

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

vbaclear008a

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

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

 

 

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

 

セルの大きさを戻す

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

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

コード
Sub クリアI()

With Worksheets("Sheet1")
    .Cells.UseStandardHeight = True
    .Cells.UseStandardWidth = True
End With

End Sub

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

vbaclear009a

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

 

 

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

 

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

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

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

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

 

短期間でエクセルVBAの独学習得を目指したいなら

 

エクセルVBAを独学する独習方法は、学習者それぞれ十人十色、多種多様と思われます。

けれども、

出来るだけ効率よく学習するためには、いくつかの大切なポイントがあります。

独学でもVBA習得の中級クラスに達するのはそんなに難しいことではありません。

先人が行った勉強方法をあなたがそのまま利用すればよいということです。

vbastudyeyecatch002 エクセルVBAを独学で習得する!ために大切な7つのポイントを解説します

独習のための大切な7つのポイントは、上記記事にて解説しています。

重要ワード

独習によるVBA習得のキーワードは、

出来るだけ多くの実例に触れること!

です。

正直、VBAの学習について自分の周りの仕事(業務)からだけ実例を得るのでは効率良い習熟は無理です。

ハッキリ言って、

本当に短い期間でVBA習得を成功させたいなら、今使っている参考書が良書かどうかを判断し、新ツールとしてオンライン学習も取り入れて行うことが、

手っ取り早く短期間習得できるというのは間違いないでしょう。

 

 

このサイトでよく使うVBAのコードのトピックを纏めています。

「VBA最速理解」の記事一覧を開く

 

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

 

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