教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA プログラミング】(クリア8)ループによるクリア処理(Select文とFor~Next文によるクリア)

f:id:m_kbou:20200421080734p:plain

 ループによるクリア処理を実施する方法について説明します。今回はSelect文とFor~Next文を使用したクリア処理について説明します。

 

 

例題

都道府県欄(A列の3行目~8行目セル)に”茨城県”又は”岩手県”が入力されている場合は対象セルをクリアし、それ以外の都道府県が入力されている場合は何もしないプログラミング方法となります。

[実行前]:

A列の3行目~8行目に都道府県名が入力されている。

f:id:m_kbou:20200317074838p:plain

[実行後]:

都道府県欄に”茨城県”又は”岩手県”が入力されている場合は対象セルがクリアされ、それ以外が入力されている場合は何もしません。

f:id:m_kbou:20200317074847p:plain

 

プログラミング

プログラミングは以下の通りとなります。

[記述例]:

Sub サンプル()

  Dim 行 As Double

  For 行 = 3 To 8
    Select Case Trim(Range("A" & 行))
      Case "茨城県"
        Range("A" & 行).ClearContents
      Case "岩手県"
        Range("A" & 行).ClearContents
    End Select
  Next

End Sub

最初に変数:行を指定します。

次にFor~Next文を使用して変数:行に3~8までの数値を順次セットしながらループさせます。

このループによりA列の3行目~8行目に入力されている名前を条件判断します。

条件判断にはSelect文を使用し、判断セルはA列セルとなるためTrim(Range("A" & 行))と記述します。Trim関数は文字列前後にスペース文字が入っていた場合に取り除くための指定となります。

入力されたデータが”茨城県”・”岩手県”であるか否かの判断をするため、Case "茨城県"・Case "岩手県"を各々指定します。条件に一致した場合はA列セルをクリアするため、Range("A" & 行).ClearContentsを記述します。

ループ内の処理内容を説明すると、

---------------------------------

まず最初に変数:行に3がセットされ、A3セルの都道府県名が”茨城県”又は”岩手県”であるか否かを判断します。A3セルには”北海道”が入力されているため、A3セルはクリアしません。

---------------------------------

次に変数:行に4がセットされ、A4セルの名前が”茨城県”又は”岩手県”であるか否かを判断します。A4セルには”岩手県”が入力されているため、A4セルをクリアします。

---------------------------------

次に変数:行に5がセットされ、A5セルの都道府県名が”茨城県”又は”岩手県”であるか否かを判断します。A5セルには”福島県”が入力されているため、A5セルはクリアしません。

---------------------------------

次に変数:行に6がセットされ、A6セルの都道府県名が”茨城県”又は”岩手県”であるか否かを判断します。A6セルには”茨城県”が入力されているため、A6セルをクリアします。

---------------------------------

次に変数:行に7がセットされ、A7セルの都道府県名が”茨城県”又は”岩手県”であるか否かを判断します。A7セルには”大阪府”の名前が入力されているため、A7セルはクリアしません。

---------------------------------

次に変数:行に8がセットされ、A8セルの都道府県名が”茨城県”又は”岩手県”であるか否かを判断します。A8セルには”沖縄県”が入力されているため、A8セルはクリアしません。

---------------------------------

との意味になります。

f:id:m_kbou:20210426202742p:plain

 

ダウンロード

上記サンプルプログラムを使用したい場合は、こちらからダウンロードして下さい。

drive.google.com

 

関連プログラム

www.osiete-excelvba.work

www.osiete-excelvba.work