Excelのvbaとは何ですか? (初級から上級まで)

VBAとは何ですか?

VBA (Visual Basic for Applications) は、Excel のほぼすべてを自動化できるプログラミング言語です。 VBA を使用すると、Excel オブジェクトを参照し、それらに関連付けられたプロパティ、メソッド、イベントを使用できます。たとえば、マクロを使用してピボット テーブルを作成し、グラフを挿入し、ユーザーにメッセージ ボックスを表示できます。

クレイジーなことは次のとおりです。

手動で数分で実行するすべてのタスクを、VBA ではワンクリックで同じ精度で数秒で実行できます。ドキュメント、ブックを開いたとき、または特定の時間に自動的に実行される VBA コードを作成することもできます。

具体的な例を示します。

毎朝オフィスに行くと、最初にしなければならないことは、月初から現在までの売上のピボットテーブルを作成し、上司に提示することです。これには、毎日同じ手順が含まれます。しかし、 VBA を使用してピボット テーブルを作成し、ワンクリックでそれを挿入できることに気づいてから、1 日あたり 5 分を節約できました。

ピボットテーブルを作成するマクロコード

これがVBAの仕組みです

VBA はオブジェクト指向言語であり、オブジェクト指向言語として、VBA ではオブジェクトを使用してそのプロパティを定義する方法でコードを構造化します。

簡単に言うと、最初にオブジェクトを定義し、次に実行するアクティビティを定義します。 VBA でコードを記述するために使用できるオブジェクト、コレクション、メソッド、およびプロパティがあります。

>お見逃しなく<

誰かに箱を開けるように言いたいとします。あなたが使う言葉は「箱を開けてください」です。平易な英語ですね。しかし、VBA とマクロの作成に関しては、次のようになります。

 Box.Open

ご覧のとおり、上記のコードはここでのオブジェクトであるボックスから始まり、これに「Open」メソッドを使用しています。もう少し具体的に考えてみましょう。赤色の箱を開けたいとします。この場合のコードは次のようになります。

 Boxes(“Red”).Open

上記のコードでは、box がコレクションであり、open がメソッドです。複数のボックスがある場合は、ここで特定のボックスを定義します。別の方法は次のとおりです。

 Box(“Red”).Unlock = True

上記のコードでは、ボックスは再びコレクションであり、Unlock は TRUE に設定されたプロパティです。

Excel で VBA は何に使われますか?

Excel では、VBA をさまざまな用途に使用できます。ここにあるいくつかの:

  • データの入力: セルまたはセル範囲にデータを入力できます。あるセクションから別のセクションにデータをコピーして貼り付けることもできます。
  • タスクの自動化: 多くの時間を費やす必要があるタスクを自動化できます。私が挙げられる最良の例は、マクロを使用してピボット テーブルを作成することです。
  • カスタム Excel 関数を作成する: VBA を使用すると、カスタム ユーザー定義関数を作成し、ワークシートで使用することもできます。
  • アドインの作成: Excel では、VBA コードをアドインに変換し、他のユーザーと共有することもできます。
  • 他の Microsoft アプリケーションとの統合: Excel を他の Microsoft アプリケーションと統合することもできます。たとえば、テキスト ファイルにデータを入力できます。

Excel プログラミングの基礎

1. 手順

VBA のプロシージャは、特定のアクティビティを実行するコードのセットまたは 1 行のコードです。

  1. SUB : Sub プロシージャはアクションを実行できますが、値を返しません (ただし、オブジェクトを使用して値を取得できます)。
  2. Function : Function プロシージャを使用して、スプレッドシートまたは他の SUB および FUNCTION プロシージャで使用できる関数を作成します (こちらを参照してください: VBA 関数)。

2. 変数と定数

コード内で値を複数回使用するには、変数と定数が必要です。

  • 変数: 変数には値を格納できます。変数には名前があり、そのデータ型を定義する必要があり、格納する値を変更できます。名前が示すように、「VARIABLE」には固定値がありません。システム内に保管される保管箱のようなものです。
  • 定数: 定数にも値を格納できますが、コードの実行中に値を変更することはできません。

3. データ型

VARIABLES と CONSTANTS のデータ型を宣言する必要があります。

define data type

変数または定数のデータ型を指定すると、データの有効性が保証されます。データ型を省略した場合、VBA は変数にバリアント データ型を適用します (これが最も柔軟です)。VBA はデータ型が何であるべきかを推測しません。

ヒント:明示的な VBA オプション

4. オブジェクト、プロパティ、メソッド

Visual Basic for Applications はオブジェクト指向言語であり、それを最大限に活用するには、 Excel オブジェクトを理解する必要があります。

Excel で使用するブックにはさまざまなオブジェクトが含まれており、これらすべてのオブジェクトにアクセスできるプロパティと使用できるメソッドがいくつかあります。

5. イベント

Excel で何かを行うたびに、セルに値を入力したり、新しいワークシートを挿入したり、グラフを挿入したりすることがイベントになります。以下はオブジェクトに応じたイベントの分類です。

  1. アプリケーション イベント:これらのイベントは Excel アプリケーション自体に関連付けられます。
  2. ワークブック イベント: これらのイベントは、ワークブック内で発生するアクションに関連付けられます。
  3. ワークシート イベント: これらのイベントは、ワークシート内で発生するアクションに関連付けられます。
  4. チャート イベント:これらのイベントはチャート シート (ワークシートとは異なります) に関連付けられています。
  5. ユーザーフォーム イベント:これらのイベントは、ユーザーフォームで発生するアクションに関連付けられます。
  6. OnTime イベント: OnTime イベントは、特定の時間にコードをトリガーできるイベントです。
  7. OnKey イベント: OnKey イベントは、特定のキーが押されたときにコードをトリガーできるイベントです。

6.適用範囲

range オブジェクトは、VBA コードで範囲を参照する最も一般的で一般的な方法です。セルアドレスを参照する必要があります。構文を説明します。

 Worksheets(“Sheet1”).Range(“A1”)

7.条件

他のプログラミング言語と同様に、VBA で条件をテストするコードを作成することもできます。これを 2 つの異なる方法で行うことができます。

  • IF THEN‌ ELSE‌ :これは、条件をテストし、その条件が TRUE の場合にコード行を実行するために使用できる IF ステートメントです。次のようにネスト条件を記述することもできます。
  • SELECT‌T‌ CASE : 選択ケースでは、条件を指定してから、異なるテスト結果のケースを指定して、実行するコードの異なる行を実行できます。 IF ステートメントよりも少し構造化されています。

8. VBA ループ

VBA では、アクションを繰り返し実行できるコードを作成できます。このようなコードを作成する方法はいくつかあります。

  • For Next : For Next の使用に最も適しているのは、一連のアクションを一定の回数だけ繰り返す場合です。
  • For Each Next : オブジェクトのコレクションからオブジェクトのグループを反復処理する場合に使用するのに最適です。
  • Do While ループ: Do While ループの背後にある単純なアイデアは、条件が true である間にアクティビティを実行することです。
  • Do until ループ: Do until ループでは、VBA はループを実行し、条件が FALSE の場合は実行を継続します。

9. 入力ボックスとメッセージボックス

  • インプットボックス: インプットボックスは、ユーザーに対して入力ボックスを表示し、回答を収集する機能です。
  • メッセージ ボックス: メッセージ ボックスはユーザーにメッセージを表示するのに役立ちますが、メッセージ ボックスにボタンを追加してユーザーからの応答を取得するオプションもあります。

10. エラー

Excel ではプログラミング エラーが発生すると不運なので、何としても対処する必要があります。

  1. 構文エラー: これらはコードの作成中に発生するタイプミスに似ていますが、VBA はこれらのエラーを報告することで役立ちます。
  2. コンパイル エラー: アクティビティを実行するコードを作成したが、そのアクティビティが無効な場合に発生します。
  3. ランタイム エラー: コードの実行中に RUNTIME エラーが発生します。コードが停止され、エラー ダイアログ ボックスが表示されます。
  4. 論理エラー: これはエラーではありませんが、コードの作成中のエラーであり、検出して修正する際に問題が発生する場合があります。

Excelでマクロ(VBAプログラム)を書く

私は、誰かが Excel でプログラミングを始めるとき、最初は彼/彼女がゼロからどんどんコードを書くべきだと強く信じています。ゼロからコードを作成すればするほど、VBA がどのように機能するかが理解できます。

ただし、複雑なコードに飛びつくのではなく、単純なコードを作成することから始める必要があります。だからこそ、今は複雑なことは考えないでほしいのです。

マクロ コードを書いてピボット テーブルを作成することもできますが、現時点ではそこまで考えないでください。スプレッドシートで実行したいアクティビティについて考えてみましょう。そのアクティビティのコードを記述できます。

  1. 「開発」タブに移動し、「Visual Basic」ボタンからVisual Basic Editorを開きます。
    visual-basic-button
  2. その後、「プロジェクトウィンドウ」から新しいモジュールを挿入します(右クリック ➢ 挿入 ➢ モジュール)。
    insert-a-new-module
  3. その後、コード ウィンドウに移動し、以下に示すように、「Enter Done」という名前のマクロを作成します (SUB プロシージャを作成します)。
    code-window
  4. そこから、上で説明したコードを記述する必要があります。ちょっと待って、次のように考えてください。値を挿入するセルを指定してから、入力する値を指定する必要があります。
  5. セル参照を入力します。このためには、以下のように RANGE オブジェクトを使用してセル アドレスを指定する必要があります。
    cell-reference-range-object
  6. その後、ポイントを入力すると、ポイントを追加した瞬間に、設定できるプロパティとその範囲で実行できるアクティビティのリストが表示されます。
    enter-a-dot
  7. ここから、「Value」プロパティを選択し、セル「A1」に挿入するテキストを設定する必要があります。これを行うと、コードは次のようになります。
    select-value
  8. 最後に、コード行の上にテキストを入力します(「このコードはセル A5 に値「完了」を入力します)。これは、作成したコード行を定義するために挿入できるVBA コメントです。
    enter-the-text-above-line-code
 Sub Enter_Done() 'this code enters the value “Done” in the cell A5 Range("A1").Value = "Done" End Sub

これを理解しましょう…

このコードは 2 つの異なる部分に分割できます。

  • 最初の部分では、RANGE オブジェクトを使用してセル アドレスを指定しました。また、範囲オブジェクトを使用してセルを参照するには、セル アドレスを二重引用符で囲む必要があります (角括弧を使用することもできます)。
  • SECOND 部分では、セルに入力する値を指定しました。これで、「.Value」を使用してセル A5 の value プロパティを設定しました。その後、次に指定するのは、 value プロパティに相対的な値です。値を定義するときは (テキストの場合)、その値を二重引用符で囲む必要があります。

VBA を学ぶ最良の方法

ここでは、すぐに VBA を学ぶのに役立つ、最も素晴らしいチュートリアルをいくつかリストしました (特定の順序ではありません)。

  • 便利な Excel [VBA] マクロ コード例トップ 100
  • VBA を使用して Excel でユーザー定義関数 [UDF] を作成する方法
  • VBA の面接での質問

1. VBA を始める

2. VBA でワークブックを操作する

  • VBA ワークブック オブジェクトについて
  • VBAを使用してExcelファイル(ワークブック)をコピーする
  • ワークブック(Excelファイル)をアクティブ化する
  • ブック(Excelファイル)を閉じます。
  • ワークブック(Excelファイル)を結合する
  • 新しいワークブック(Excelファイル)を作成します。
  • ブック(Excelファイル)の削除
  • ワークブック(Excelファイル)を開く
  • ブック(Excelファイル)の保護/保護解除
  • ワークブック(Excelファイル)の名前を変更します
  • ワークブック(Excelファイル)を保存します。
  • ThisWorkbook (現在の Excel ファイル)

4. 範囲とセルの操作

5. 変数と定数

6. カール

  • VBAループ
  • Excel VBA Do While ループおよび (Do Loop While) – ガイド
  • Excel で VBA を使用してすべてのシートを循環する方法
  • VBA を使用した範囲のループ (列、行、および UsedRange)
  • VBA FOR LOOP (For Next、For Each) – ガイドと例
  • GoTo VBA 宣言

7.条件

9. テーブル

10. エラー

11. 機能

12.その他

コメントを追加する

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