Excel VBA(マクロ)を習い始めたばかりの方の学習を手助けできればと思い、初心者向けの記事を書いています。
基本的に Excel VBA(マクロ)では Excel シート上のセルを操作することになります。
セルに数字や文字列を書き出すことができますし、逆に書き出した数字や文字列を消すこともできます。
今日はセルに書き出した数字や文字列を消す方法についてお話しします。
1、セルに書き出した数字や文字列を消したい場合
例えば、あるシステムの一部で、シート上に会計ソフトに取り込むための以下のような↓ 並びのデータを表示したいとします。
1行目から27行目にかけて上の行から順番にデータを出力していきます。
さて、このシステムを使って会計ソフトに取り込むデータの数はいつも同じではないものとします。
もっと少ない場合もあります↓ 1行目から18行目
このように、毎回データの数が違うので、一度表示させたデータを消さずに新しいデータを書き出すと以下のように元のデータとダブって表示されてしまうことがあります。
新しいデータを書き出す前に、元々表示されていたデータを消したいわけです。
2、セルに書き出した数字や文字列を消す方法
さて、上記のようにセルに書き出した数字や文字列を消す方法を紹介します。
ClearContents メソッドを使いましょう!
ClearContents メソッドの使い方
ClearContents メソッドは、セル(やグラフ)に表示されている数字・文字列を消すためのものです(書式は元のままです)。
*メソッドというのは、「操作」のことです。今回の場合で言えばセルに表示されている数字・文字列を消すという「操作」を意味します。
以下のように記述して使います↓
*オブジェクトというのは、「操作対象」のことです。今回の場合で言えばセルが「操作対象」になります。
今回やりたいことは、セルという「操作対象」に対して、表示されている数字・文字列を消すという「操作」を行うことです。
さて、今回消したいセルの範囲をオブジェクトとして指定する必要があるわけです。
指定した範囲のセルの数字・文字列を消す場合
セルの範囲を指定して消す方法を紹介します。
かなり広めに範囲を指定して、A1~Z500 とします。
なお、セルの指定の仕方についてはこちらの記事に書きましたので参考にして頂ければと思います↓
Cells と Range を使う方法がありますが、今回 Range を使います。
セル A1~Z500 に表示されている数字・文字列を消すためには以下のようなコードを標準モジュールに書きます。
プロシージャ名は「Test」としました。
1 2 3 4 5 |
Sub Test() Range("A1:Z500").ClearContents End Sub |
オブジェクト.ClearContents
のオブジェクトを Range(“A1:Z500”) としています。
シートの全てのセルの数字・文字列を消す場合
セルを指定せずに、シート全体をまるまる消したい場合は以下のようなコードを標準モジュールに書きます。
1 2 3 4 5 |
Sub Test() Cells.ClearContents End Sub |
オブジェクト.ClearContents
のオブジェクトを Cells としています。Cells でそのシートの全てのセルを意味します。
3、クリアする(消す)他のメソッド
さて、セルの数字・文字列を書式をそのままにして消すために ClearContents を使いました。
他にも、消すためのメソッドはあります。
消せるものとしては、数字・文字列、書式、コメント、アウトラインがあります。
先の ClearContents も含めると、消せるものごとに以下のような種類のメソッドがあります。
ClearContents 数字・文字列をクリア
ClearFormats 書式をクリア
ClearComments コメントをクリア
ClearOutline アウトラインをクリア
ClearFormats
ClearFormats についてお話ししますと、書式というのは、セルの色、文字・数字の色、セルの枠線、数字・文字列の太さなどのことです。
例えば、以下のようなシートがあった場合に書式をクリアしてみます。
以下のコードを実行します。
1 2 3 4 5 |
Sub Test() Cells.ClearFormats End Sub |
すると書式(セルの色、数字・文字列の色、セルの枠線、文字・数字の太さ)のみがクリアされます↓
数字・文字列そのものは残ります。
ClearComments
コメントはセルに付けることができる「コメント」のことです。ClearComments を使うとコメントのみがクリアされます。
次のシート上のコメントを消してみたいと思います。
以下のコードを実行します。
1 2 3 4 5 |
Sub Test() Cells.ClearComments End Sub |
するとコメントのみがクリアされます↓
書式や数字・文字列そのものは残ります。
Clear
Clear を使うと全てがクリアされます。
全てを消して真っ白なシートに戻ります。
例えば、以下のようなシートがあった場合に全てをクリアしてみたいと思います。
以下のコードを実行します。
1 2 3 4 5 |
Sub Test() Cells.Clear End Sub |
すると全てがクリアされました↓
4、まとめ
セルをクリアする方法は上記のとおりいくつかあります。
会計事務所や経理の仕事で一番よく使うのは、最初に紹介した ClearContents です。
数字・文字列だけを消したい場合が多いので。
システムを作って行くと必ず、セルの数字・文字列を消したいことが出てくるので使ってみて下さい。
編集後記
ここのところ急に寒くなってきました。風邪には気をつけたいものです。
あと、最近一度体重が増えるとなかなか減りません。
やはり代謝が落ちてるので何とかしなければ。