【簡単エクセルマクロ・VBA】指定した行以降のデータをすべてクリアする方法|Rows/CrearContents|ワンポイントテクニック #001

アフィリエイト広告を利用しています。
QRコード
【QRコード】PC<-->スマホの切り替えにご利用ください
アイキャッチ
運営者・ポテ

いつもありがとうございます。

これは、ノンプログラマー向けの「エクセルマクロVBAワンポイントテクニック解説シリーズ」です。

本稿では、指定した行以降のデータを一括でクリアする方法について解説します。

マクロを作成していると、特定の行から下のデータをすべて消去したい場面がよくあります。例えば、データを更新する際に古いデータを消去したり、不要な情報を整理したりするケースです。

このような場合、シート全体を消去するのではなく、タイトル行など一部を残して、それ以降の情報だけをクリアしたいことがよくあります。

そんなときに役立つのが、今回紹介するコードです。


ことばの意味
  • ノンプログラマー
    プログラミングを本職としない人たちのことです。
  • マクロ
    VBAを使って作成される「機能」のことです。
  • VBA
    Visusal Basic for Application の略で、プログラミング言語のことです。
関連記事
筆者の記事関連経験/資格
  • VBA使用経験 約20年
  • Python 3 エンジニア認定基礎試験 合格
    一般社団法人Pythonエンジニア育成推進協会によって運営・認定されている民間資格で、経済産業省が定めたガイドライン「ITスキル標準(ITSS)」において、職種:ソフトウェアディベロップメント、専門分野:応用ソフトのレベル1に掲載されています。

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】セルの内容などのクリア|セルの基本操作 #003 | みんなの実用学 (jitsuyogaku.com)

以上で解説は終了です。

おわりに

運営者・ポテ

ご覧いただきありがとうございました。

今回の記事では、セルの基本操作のうち、「指定した行以降の内容をすべてクリアする方法」を解説いたしました。

お問い合わせやご要望等ございましたら、「お問い合わせ/ご要望」またはコメントにて、ご連絡いただければ幸いでございます。

皆様の人生がより一層素晴らしいものになるよう、少しでもお役に立てれば幸いでございます。

尚、当サイトでは様々な情報を発信しております。もしよろしければ、トップページもご確認いただけると幸いでございます。

>>トップページ

VBAプログラミングスキルアップのための参考情報

ここでは参考図書を紹介いたしますが、これらに限らず自分に合うものを選ぶことが重要だと考えております。皆様の、より一層のご成功を心よりお祈りしております。

VBAプログラミングのスキルアップ

学習用としてもハンドブックとしても役立つ便利な書籍がこちらです。価格はやや高めですが、その内容は非常に充実しています。相応のスキルを身に付けるためには、こうしたしっかりとした書籍を一冊持っておくと良いでしょう。



入門書に関しては、どの書籍も大きな違いはありません。あまり迷うことに時間をかけるより、手頃なものを一冊選んでみると良いでしょう。VBAの入門書は数多く出版されていますので、興味がある方はぜひチェックしてみてください。

私は、迷った場合は、インプレス社の「いちばんやさしい」シリーズを購入することが多いです。

>>Amazon で VBA の書籍をでチェックする

>>楽天市場 で VBA の書籍をチェックする

>>Yahoo!ショッピングでVBAの書籍をチェックする


VBAのプログラミング能力を客観的に証明したい場合には「VBAエキスパート試験」があります。この試験はVBAの知識を公式に認定するものです。VBAの総合的な能力獲得を目指す方に適しています。以下の公式テキストが販売されております。



プログラミングの一般教養

「独学プログラマー」というプログラミングの魅力を解説した書籍があります。これはVBAではなくPythonを題材としていますが、プログラミングの基本的な知識や思考法、仕事の進め方まで幅広く学べます。


こちらの記事でも紹介しております。もしよろしければご覧ください。

QRコード
【QRコード】PC<-->スマホの切り替えにご利用ください

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です