Excel VBA If…Then…ElseステートメントでExcel作業を劇的に効率化する方

Excel VBA(Visual Basic for Applications)を使うと、Excelシートの操作やデータの処理を自動化することができます。
VBAを使えば、手作業で行うのに時間のかかる作業を自動化できるため、生産性を向上させることができます。

この記事では、Excel VBAの基本的な概念のうち、If…Then…Else ステートメントについて解説し、実際にサンプルコードを紹介します。

If…Then…Else ステートメントとは?

If…Then…Else ステートメントは、Excel VBAの条件分岐において最も基本的な構造の一つです。
このステートメントは、「もしAであればBを実行し、そうでなければCを実行する」というような、プログラムの分岐を制御するために使用されます。

具体的には、以下のような構文を持ちます。

上記の構文では、条件式がTrueの場合は処理1が実行されます。一方、条件式がFalseの場合は処理2が実行されます。

また、Else節は必須ではありません。以下のような構文も可能です。

上記の構文では、条件式がTrueの場合にのみ処理1が実行されます。

If…Then…Else ステートメントの使い方

If…Then…Else ステートメントは、Excel VBAで非常に頻繁に使われます。具体的には、以下のような場面で利用されます。

条件による処理の分岐

もっとも基本的な使い方は、条件によって処理を分岐することです。
例えば、あるセルの値が10未満の場合にはメッセージを表示し、それ以外の場合には何もしない、というようなプログラムを考えてみましょう。

上記のコードでは、A1セルの値が10未満であれば、メッセージボックスが表示されます。

複数条件による処理の分岐

複数の条件によって処理を分岐することもできます。
例えば、あるセルの値が10未満の場合にはメッセージAを、10以上20未満の場合にはメッセージBを、それ以上の場合にはメッセージCを表示する、というようなプログラムを考えてみましょう。

上記のコードでは、A1セルの値によって3つのメッセージのいずれかが表示されます。

論理演算子を使った条件式の組み合わせ

論理演算子を使って、複雑な条件式を組み合わせることもできます。
例えば、あるセルの値が10以上かつ20以下の場合にメッセージAを、それ以外の場合にはメッセージBを表示する、というようなプログラムを考えてみましょう。

上記のコードでは、A1セルの値によって2つのメッセージのいずれかが表示されます。

実務的なサンプルコード

以上のような基本的な使い方の他に、実際の業務でよく使われるようなサンプルコードも紹介します。

データのフィルタリング

データのフィルタリングは、Excelの基本的な機能の一つですが、VBAを使って自動化することもできます。
以下のコードは、A列の値が”Red”の行をフィルタリングする例です。

上記のコードでは、ActiveSheetのA1からC10までのセル範囲をフィルタリングし、A列の値が”Red”の行だけが表示されます。

シートのコピー

シートのコピーも、VBAを使えば自動化することができます。以下のコードは、Sheet1をSheet2にコピーする例です。

上記のコードでは、Sheet1をSheet2にコピーし、新しく作成されたシートの名前を”Sheet2″に変更しています。

セルの色の変更

セルの色を変更することも、VBAを使えば自動化することができます。以下のコードは、A1セルの背景色を赤色に変更する例です。

上記のコードでは、A1セルのInteriorオブジェクトのColorプロパティを、RGB(255, 0, 0)という赤色に設定しています。

ファイルの保存

Excelファイルの保存も、VBAを使えば自動化することができます。以下のコードは、現在のブックを”Sample.xlsx”という名前で保存する例です。

上記のコードでは、ActiveWorkbookをxlOpenXMLWorkbook形式で、”Sample.xlsx”というファイル名で保存しています。

オブジェクトの作成と操作

VBAでは、オブジェクトの作成と操作もできます。
以下のコードは、新しいシートを作成し、A1セルに”Hello, World!”という文字列を入力する例です。

上記のコードでは、新しいワークシートオブジェクトを作成し、ThisWorkbookのSheetsコレクションに追加しています。
そして、新しいシートのA1セルに”Hello, World!”という文字列を入力しています。

まとめ

Excel VBAIf…Then…Elseステートメントについて、基礎から応用、実務的なサンプルコードまで解説しました。
VBAを使えば、Excelの基本的な機能だけでなく、自動化やオブジェクトの操作など、様々なことができます。是非、Excel VBAを使って業務の効率化に取り組んでみてください。

コメント