【簡単Excelマクロ・VBA】指定した行以降のデータをすべてクリアする方法|Rows/CrearContents|ワンポイントテクニック #001
いつもありがとうございます。
ノンプログラマー向け「Excelマクロ・VBAワンポイントテクニック解説シリーズ」へようこそ。
本稿では、指定した行以降のデータを一括でクリアする方法について解説します。
マクロを作成していると、特定の行から下のデータをすべて消去したい場面がよくあります。例えば、データを更新する際に古いデータを消去したり、不要な情報を整理したりするケースです。
このような場合、シート全体を消去するのではなく、タイトル行など一部を残して、それ以降の情報だけをクリアしたいことがよくあります。
そんなときに役立つのが、今回紹介するコードです。
ことばの意味
- ノンプログラマー
プログラミングを本職としない人たちのことです。 - マクロ
VBAを使って作成される「機能」のことです。 - VBA
Visusal Basic for Application の略で、プログラミング言語のことです。
関連記事
VBAで指定した行以降の内容をすべてクリアする方法
指定した行以降の内容をすべてクリアするコードと、その実行結果を以下に示します。
Sub ClearRowsFromSpecifiedRow()
' 変数宣言
Dim wb As Workbook ' ワークブックオブジェクトを格納する変数
Dim ws As Worksheet ' ワークシートオブジェクトを格納する変数
Dim start_row As Long ' クリアを開始する行番号を格納する変数
' 現在のワークブックオブジェクトを変数 wb に格納
Set wb = ThisWorkbook
' ワークブック内の最初のワークシートオブジェクトを変数 ws に格納
Set ws = Worksheets(1)
' クリアを開始する行番号を指定
start_row = 5
' 指定した行からシートの最終行までの内容をクリア
ws.Rows(start_row & ":" & ws.Rows.Count).ClearContents
End Sub
解説していきます。
' 変数宣言
Dim wb As Workbook ' ワークブックオブジェクトを格納する変数
Dim ws As Worksheet ' ワークシートオブジェクトを格納する変数
Dim start_row As Long ' クリアを開始する行番号を格納する変数
ここでは、使用する変数の宣言をしています。Dim 変数 As データ型
の構文で宣言します。これにより、各変数はAs
以降で指定したデータ型のデータを保持できるようになります。
尚、Long
は、数値を扱うためのデータ型です。
' 現在のワークブックオブジェクトを変数 wb に格納
Set wb = ThisWorkbook
' ワークブック内の最初のワークシートオブジェクトを変数 ws に格納
Set ws = Worksheets(1)
ここでは、各オブジェクトを変数に格納しています。
Set wb = ThisWorkbook
は、オブジェクトThisWorkbook
(現在のブック)を、変数wb
に格納しています。ThisWorkbook
は、自身のこと、つまりこのコードが書かれているワークブックを指します。これにより、以降の処理で変数wb
を使ってワークブックを参照できるようになります。
Set ws = Worksheets(1)
は、ワークブック内の最初のシートを、変数ws
に格納しています。Worksheets(1)
はブック内の1番目のシートを指します。これにより、以降の処理で、変数ws
を使ってワークシートを参照できるようになります。
' クリアを開始する行番号を指定
start_row = 2
ここでは、クリアを開始する行番号を変数start_row
に格納しています。具体的には、クリアを開始する行を2行目に設定しています。1行目はタイトル行であるため保持し、2行目以降の行をクリアします。
' 指定した行からシートの最終行までの内容をクリア
ws.Rows(start_row & ":" & ws.Rows.Count).ClearContents
ここでは、指定した行(2行目)から、シートの最終行までの内容をクリアしています。
ws.Rows(start_row & ":" & ws.Rows.Count)
は、2行目から最終行までの範囲を示しています。
変数が設定されているため少し見にくいかもしれませんが、仮に start_row
が2で、ws.Rows.Count
が100だとすると、ws.Rows(2:100)
となります。
.ClearContents
メソッドは、指定したセルの内容をクリアします。セルのフォーマットやコメントはクリアされず、内容のみがクリアされます。
なお、「セルの内容のクリア」については、こちらの記事でも解説しておりますので、もしご興味がございましたら、ご覧ください。
以上で解説は終了です。
おわりに
ご覧いただきありがとうございました。
今回の記事では、セルの基本操作のうち、「指定した行以降の内容をすべてクリアする方法」を解説いたしました。
お問い合わせやご要望等ございましたら、「お問い合わせ/ご要望」またはコメントにて、ご連絡いただければ幸いでございます。
皆様の人生がより一層素晴らしいものになるよう、少しでもお役に立てれば幸いでございます。
尚、当サイトでは様々な情報を発信しております。もしよろしければ、トップページもご確認いただけると幸いでございます。
筆者の記事関連経験
- VBA使用経験約20年
実務に使用するマクロを多数作成してきました。 - Python 3 エンジニア認定基礎試験
経済産業省が定めたガイドライン「ITスキル標準(ITSS)」に掲載されている民間資格です。
VBAプログラミングスキルアップのための参考情報
ここでは参考図書を紹介いたしますが、これらに限らず自分に合うものを選ぶことが重要だと考えております。皆様の、より一層のご成功を心よりお祈りしております。
VBAプログラミングのスキルアップ
学習用としてもハンドブックとしても役立つ便利な書籍がこちらです。価格はやや高めですが、その内容は非常に充実しています。相応のスキルを身に付けるためには、こうしたしっかりとした書籍を一冊持っておくと良いでしょう。
入門書に関しては、どの書籍も大きな違いはありません。あまり迷うことに時間をかけるよりは、手頃なものを一冊選んでみると良いでしょう。VBAの入門書は数多く出版されていますので、興味がある方はぜひチェックしてみてください。
甲乙つけがたい場合、私はインプレス社の「いちばんやさしい」シリーズを選ぶことが多いです。
\チェックしてみよう/
\チェックしてみよう/
\チェックしてみよう/
VBAのプログラミング能力を客観的に証明したい場合には「VBAエキスパート試験」があります。この試験はVBAの知識を公式に認定するものです。VBAの総合的な能力獲得を目指す方に適しています。以下の公式テキストが販売されております。
プログラミングの一般教養
「独学プログラマー」というプログラミングの魅力を解説した書籍があります。これはVBAではなくPythonを題材としていますが、プログラミングの基本的な知識や思考法、仕事の進め方まで幅広く学べます。
こちらの記事でも紹介しております。もしよろしければご覧ください。