ExcelにおけるVBA:Visual Basic for Applicationsとは?

⚡ スマートサマリー

ExcelのVBA(Visual Basic for Applications)は、Excel内でタスクを自動化したり、カスタムプログラムを作成したりするためのイベント駆動型言語です。このページでは、VBAとは何か、プログラミングの基本、開発タブの有効化、Hello Worldプログラム、PMT関数を使用したEMI計算機について説明します。

  • 🧑💻 コア定義: VBAはイベント駆動型プログラミング言語です。 Microsoft Officeアプリケーションの自動化と機能拡張に使用されます。
  • 🔤 基本: 変数は名前付きのメモリ位置であり、ExcelのBODMAS順序と論理演算子はVBAでも適用されます。
  • 🛠️ 開発者タブ: VBAは「開発」タブにあり、「オプション」→「リボンのカスタマイズ」で有効化できます。
  • 🟢 サブルーチン: すべてのVBAプログラムはSubで始まり、End Subで終わります。
  • 👋 こんにちは世界: 入力Box ユーザー名とメッセージを読み取りますBox 挨拶を表示します。
  • ???? EMI計算機: WorksheetFunction.Pmt は、金利、期間、および融資額から均等月賦払い額を計算します。

ExcelのVBA

「この国の誰もがコンピュータープログラミングを学ぶべきだ…なぜなら、それは思考力を養うからだ。」 - スティーブ・ジョブズ

スティーブ・ジョブズの賢明な言葉を引き継いで、世界中のすべての人がコンピューターのプログラミング方法を学ぶべきだと言いたい。プログラマーとして働いたり、プログラムを書いたりする必要はないかもしれないが、それは考え方を教えてくれるだろう。

Visual Basic for Applications (VBA) とは何ですか?

Visual Basic for Applications(VBA) によって実装されるイベント駆動型プログラミング言語です。 Microsoft Office アプリケーションを開発するため。 VBA は自動化プロセスの開発に役立ちます。 Windows APIとユーザー定義関数。また、ホスト アプリケーションのユーザー インターフェイス機能を操作することもできます。

詳細に入る前に、コンピューター プログラミングがどのようなものか、一般の人にもわかる言葉で見てみましょう。メイドがいるとします。メイドに家の掃除や洗濯をしてもらいたいとします。英語を使って何をすべきかを伝えると、メイドが代わりに仕事をしてくれます。コンピューターで作業していると、特定のタスクを実行したくなるでしょう。メイドに家事をするように指示したのと同じように、コンピューターにタスクを実行するように指示することもできます。

コンピュータに何をしてもらいたいかを伝えるプロセスは、コンピュータ プログラミングとして知られています。 英語を使用してメイドに何をすべきかを指示したのと同じように、英語のようなステートメントを使用してコンピュータに何をすべきかを指示することもできます。 英語のようなステートメントは、高級言語のカテゴリーに分類されます。 VBA は、Excel を強力な意志どおりに操作するために使用できる高級言語です。

VBA は実際には Visual Basic 6.0 のサブセットです BASIC の略です B初心者 All-目的 S象徴的な I命令 Cオード。

なぜ VBA なのか?

VBA を使用すると、英語のようなステートメントを使用して、さまざまなアプリケーションを作成するための命令を記述することができます。 VBA は習得が簡単で、インターフェイス コントロールをドラッグ アンド ドロップするだけで使用できる使いやすいユーザー インターフェイスを備えています。 また、Excel を思いどおりに動作させることで、Excel の機能を強化することもできます。

Excel での VBA の個人およびビジネス アプリケーション

個人使用の場合は、日常的なタスクのほとんどを自動化する単純なマクロに使用できます。 これを実現する方法の詳細については、マクロに関する記事を参照してください。

ビジネス用途では、Excel と VBA を利用した完全で強力なプログラムを作成できます。 このアプローチの利点は、Excel の強力な機能を独自のカスタム プログラムで活用できることです。

Visual Basic for Applications の概要

コードを書く前に、まず基本を知っておく必要があります。次の基本が、始めるのに役立ちます。

  • 変数 – 高校では代数について学びました。x = 2、y = 1 の (x + 3y) を求めます。この式では、x と y は変数です。この例のように、それぞれ 1 と 3 など、任意の数値を割り当てることができます。また、それぞれ 4 と 2 に変更することもできます。簡単に言えば、変数はメモリの場所です。VBA Excel で作業する場合、代数の授業と同様に、変数も宣言する必要があります。
  • 変数作成のルール
    • 予約語は使用しないでください。学生として働いている場合は、講師や校長という肩書を使用することはできません。 これらの称号は講師および学校当局に留保されています。 予約語は、Excel VBA で特別な意味を持つ単語であるため、変数名として使用できません。
    • 変数名にスペースを含めることはできません。最初の番号という名前の変数を定義することはできません。 firstNumber または first_number を使用できます。
    • わかりやすい名前を使用します。変数に自分の名前を付けたくなりますが、これは避けてください。 数量、価格、小計などのわかりやすい名前を使用します。これにより、Excel VBA コードが読みやすくなります。
  • 算術演算子 – のルール Brackets 除算、乗算、加算、減算tracBODMAS の法則が適用されるので、複数の異なる算術演算子を使用する式を扱うときは、BODMAS を適用することを忘れないでください。Excel と同様に、
    • + 追加用
    • – サブ用trac生産
    • * 乗算用
    • / 分割用。
  • 論理演算子 – 以前のチュートリアルで説明した論理演算子の概念は、VBAを使用する場合にも適用されます。これには以下が含まれます。
    • Ifステートメント
    • OR
    • NOT
    • そして
    • TRUE
    • 間違った情報

「開発者」タブを有効にする方法

以下は、Excel で開発タブを有効にする方法の段階的なプロセスです。

  • 新しいワークブックを作成する
  • リボンのスタートボタンをクリックします
  • オプション選択
  • リボンのカスタマイズをクリックします
  • 下の画像に示すように、開発者チェックボックスを選択します。
  • [OK]をクリックします。

[開発者]タブを有効にする

リボンに「開発者」タブが表示されるようになります。

VBA ハローワールド!

ここで、VBA プログラミング言語でプログラムする方法を説明します。VBA のすべてのプログラムは、「Sub」で始まり、「End sub」で終わる必要があります。ここで、name はプログラムに割り当てる名前です。sub はサブルーチンを表します。これについては、チュートリアルの後半で説明します。

Sub name()
.
.
.
End Sub

ユーザー名を尋ねる入力ボックスを表示し、挨拶メッセージを表示する基本的なVBAプログラムを作成します。

このチュートリアルは、次のチュートリアルを完了していることを前提としています。 Excelのマクロ Excel で [開発] タブを有効にしました。

  • 新しいワークブックを作成する
  • Excel マクロが有効なワークシート形式 *.xlsm で保存します。
  • 「開発者」タブをクリックします
  • コントロールリボンバーの下にあるINSERTドロップダウンボックスをクリックします。
  • 下の画像に示すようにコマンド ボタンを選択します

VBA Hello World プログラム

ワークシート上の任意の場所にコマンド ボタンを描画します

次のダイアログウィンドウが表示されます

VBA Hello World プログラム

  • マクロ名を btnHelloWorld_Click に変更します。
  • 新しいボタンをクリックします
  • 次のVBAコードウィンドウが表示されます。

VBA Hello World プログラム

次の命令コードを入力してください

Dim name As String
name = InputBox("Enter your name")
MsgBox "Hello " + name

ここに、

  • 「文字列としてのディム名」 name という変数を作成します。 変数は文字列として定義されているため、テキスト、数字、その他の文字を受け入れます。
  • 「名前 = 入力」Box("あなたの名前を入力してください")" 組み込み関数Inputを呼び出しますBox 「名前を入力してください」というキャプションが表示されたウィンドウが表示されます。 入力された名前は name 変数に保存されます。
  • メッセージBox 「こんにちは」+名前」 組み込み関数 Msg を呼び出しますBox Hello と入力した名前が表示されます。

完全なコード ウィンドウは次のようになります。

VBA Hello World プログラム

  • コードウィンドウを閉じます
  • ボタン1を右クリックし、テキストの編集を選択します
  • 「こんにちは」と入力してください

VBA Hello World プログラム

  • 「こんにちは」をクリックします
  • 次の入力ボックスが表示されます

VBA Hello World プログラム

  • あなたの名前を入力してください(例: ジョーダン)
  • 次のメッセージボックスが表示されます

VBA Hello World プログラム

おめでとうございます。Excel で最初の VBA プログラムを作成しました。

Excel で簡単な EMI 計算ツールを作成するステップバイステップの例

このチュートリアル演習では、EMI を計算する簡単なプログラムを作成します。EMI は、Equated Monthly Instalment (等額月払い) の略語です。これは、ローンを組んだときに毎月返済する金額です。次の図は、EMI を計算する式を示しています。

Excel での簡単な EMI 計算ツールの作成

上記の数式は複雑ですが、Excel で記述できます。幸いなことに、Excel ではすでに上記の問題が解決されています。PMT 関数を使用して上記の計算を行うことができます。

PMT 機能は次のように動作します。

=PMT(rate,nper,pv)

ここに、

  • "割合" これは月額料金です。 金利を年間の支払い回数で割ったものです
  • 「ンパー」 それは支払いの合計回数です。 融資期間に年間の支払い回数を掛けたものです
  • 「PV」 現在の価値。 実際の借入金額です

以下に示すように Excel のセルを使用して GUI を作成します。

Excel での簡単な EMI 計算ツールの作成

行 7 と行 8 の間にコマンド ボタンを追加します。

ボタンのマクロ名に btnCalculateEMI_Click を付けます。

編集ボタンをクリックします

次のコードを入力してください

Dim monthly_rate As Single, loan_amount As Double, number_of_periods As Single, emi As Double
monthly_rate = Range("B6").Value / Range("B5").Value
loan_amount = Range("B3").Value
number_of_periods = Range("B4").Value * Range("B5").Value
emi = WorksheetFunction.Pmt(monthly_rate, number_of_periods, -loan_amount)
Range("B9").Value = emi

ここに、

  • 「シングルとして月額料金を下げる、…」 Dim は定義に使用されるキーワードです。 VBAの変数、monthly_rate は変数名、Single は変数が数値を受け入れることを意味するデータ型です。
  • 「monthly_rate = Range(“B6”).Value / Range(“B5”).Value」 RangeはVBAからExcelのセルにアクセスする関数Range(“B6”)です。ValueはB6の値を参照します。
  • 「WorksheetFunction.Pmt(…)」 WorksheetFunction は、Excel のすべての関数にアクセスするために使用される関数です。

次の画像は完全なソースコードを示しています

Excel での簡単な EMI 計算ツールの作成

  • 「保存」をクリックしてコードウィンドウを閉じます
  • 以下のアニメーション画像に示すようにプログラムをテストします。

Excel での簡単な EMI 計算ツールの作成

Excel での VBA の使用方法の例

以下の手順では、Excel で VBA を使用する方法について説明します。

ステップ1) VBA エディタを開きます

メイン メニューの [開発] タブで、[Visual Basic] アイコンをクリックすると、VBA エディタが開きます。

ExcelでVBAを使用する

ステップ2) Excelシートを選択し、 Double ワークシートをクリックします

VBA エディターが開き、そこからコードを実行する Excel シートを選択できます。VBA エディターを開くには、ワークシートをダブルクリックします。

ExcelでVBAを使用する

フォルダーの右側に VBA エディターが開きます。 白い空間のように表示されます。

ExcelでVBAを使用する

ステップ3) 表示したい内容をメッセージに書き込みますBox

このステップでは、最初の VBA プログラムを見ていきます。 プログラムを読み取って表示するには、オブジェクトが必要です。 VBA では、メッセージ内のオブジェクトまたはメディアBox.

  • まず「Sub」と書いてから「プログラム名」と書いてください(Guru99)
  • 表示したい内容をメッセージに書き込みますBox (guru99-学ぶのは楽しいです)
  • End Subでプログラムを終了する

ExcelでVBAを使用する

ステップ4) エディターの上部にある緑色の実行ボタンをクリックします。

次のステップでは、エディター メニューの上部にある緑色の実行ボタンをクリックして、このコードを実行する必要があります。

ExcelでVBAを使用する

ステップ5) シートを選択して「実行」ボタンをクリックします

コードを実行すると、別のウィンドウがポップアップ表示されます。 ここでは、プログラムを表示したいシートを選択し、「実行」ボタンをクリックする必要があります。

ExcelでVBAを使用する

ステップ6) メッセージをメッセージに表示するBox

「実行」ボタンをクリックすると、プログラムが実行されます。 メッセージをMsgに表示しますBox.

ExcelでVBAを使用する

上記のExcelファイルをダウンロードしてください。 Code

よくあるご質問

マクロとは、Excelがコードとして保存する一連の手順の記録です。VBAは、そのコードを記述する言語です。記録されたマクロはすべてVBAですが、記録ではできない処理を実行するために、VBAを手入力することもできます。

Sub はサブルーチン(名前付きコードブロック)の開始を示し、End Sub はその終了を示します。Excel はこれらの間のステートメントを実行します。コードが値を返す必要がある場合は、代わりに関数を使用します。

入力Box ユーザーに値を入力するように促し、その値を返す小さなウィンドウを表示します。Box ユーザーにメッセージを表示します。これらを組み合わせることで、VBAプログラムはワークシートを使わずに、入力を読み取り、結果を表示することができます。

はい。ExcelのCopilotやコードアシスタントなどのAI機能は、「シートをクリアするボタンを追加する」といった簡単な説明からVBAコードを生成します。ユーザーはそれをエディターに貼り付け、コピーしたシートでテストします。

はい。AIアシスタントがエラーメッセージとコードを読み取り、エラーが発生した行を特定し、データ型の誤りや参照の欠落など、修正案を提示します。ユーザーは変更を適用してテストを行います。