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

アフィリエイト広告を利用しています。
Information
運営者・ポテ

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

皆さん、こんにちは。ご覧いただきありがとうございます。

“日々の業務にちょうどいい自動化を”──

業務改善アプリケーションの作成を行っている「ソフトデザイン工房」 です。

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

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

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

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

この記事が、あなたのVBAマクロの価値をさらに高める一助となれば幸いです。

VBAを活用して、自分自身や身近なコミュニティに合ったアプリケーションを作成し、仕事量は半分に、成果は2倍に──そんな未来を目指すあなたを応援しています。

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 = 2
    
    
    ' 指定した行からシートの最終行までの内容をクリア
    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スキルアップの参考情報

近年は、ChatGPTをはじめとするAIの登場によって、学習のスタイルが大きく変わりました。

分からないことがあれば、AIに尋ねれば答えがすぐに見つかる時代です。

とはいえ、AIを使いこなすには、自分自身の基本的な知識や理解力が欠かせません。

全体像をつかむためには、やはり書籍などで体系的に学んでおくことが今でも有効です。

そのうえでAIを活用すれば、自分の理解度に合わせた的確な解説や、応用のヒントを得ることができます。

「学んで基礎を築く → AIで補い発展させる」──このサイクルを重ねることで、VBAスキルは着実に高まっていくでしょう。

VBAのスキルアップ

VBAを学び始めるなら

入門書は、どれを選んでも大きな差はないように感じます。

どれを選ぶかに悩むことに時間をかけるよりも、まずは手頃な一冊を手に取って進めてみるのがおすすめです。

もし迷ったときには、私はインプレス社の「いちばんやさしい」シリーズを選ぶことが多いです。

基礎を超えて力をつけたいなら

私は上級者を目指していましたので、入門書にとどまらず、このような内容の濃い一冊を選んで学んでいました。

今は誰でもAIを活用できる時代になりましたが、上級者を目指す方にとっては、AIをより上手に活用するという意味でも、こうした本は今なお価値があります。

このレベルの本を一冊持っておくことに、損はないでしょう。


資格で能力を証明したいなら

VBAのプログラミング能力を客観的に示したい場合には「VBAエキスパート試験」があります。

特に「スタンダード」の方は上級者向けです。

あなたが社内業務の改善を行う立場であっても、VBAで作成したシステムをお客様に納める立場であっても、この資格は信頼や安心につながるでしょう。

以下の公式テキストが販売されています。



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

「独学プログラマー」というプログラミングの魅力を解説した書籍があります。

これはVBAではなくPythonを題材としていますが、プログラミングの基本的な知識や思考法、仕事の進め方まで幅広く学べます。

今はAIにコードを尋ねれば、答えが返ってくる時代です。

しかし、この本からは「コード」以上に、プログラミングに向き合う姿勢や考え方を学ぶことができるでしょう。


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

【初心者歓迎】無料相談受付中 

運営者・ポテ

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

限られた時間をより良く使い、日本の生産性を高めたい──

みんなの実用学を運営するソフトデザイン工房では、業務整理や業務改善アプリケーション作成のご相談を承っております。

お気軽にご相談ください。


こちらの記事でも紹介しております。

おわりに

運営者・ポテ

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

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

お問い合わせやご要望がございましたら、「お問い合わせ/ご要望」フォームまたはコメント欄よりお知らせください。

この記事が皆様のお役に立てれば幸いです。

なお、当サイトでは様々な情報を発信しております。よろしければトップページもあわせてご覧ください。

この記事を書いた人

運営者・ポテソフトデザイン工房|日々の業務にちょうどいい自動化を
■人生を追求する凡人 ■日本一安全で、気の向くままに自分の時間を過ごせる、こだわりのキャンプ場を作るのが夢 ■ソフトデザイン工房運営(個人事業者) - 業務改善アプリケーションをご提供 ■人生は時間そのもの。ひとりでも多くの人が「より良い人生にするために時間を使って欲しい」と願い、仕事のスキルの向上、余暇の充実、資産形成を追求。

コメントを残す

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