Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

ExcelでVBAマクロ・スクリプトを作成する方法【初心者向け完全ガイド】

Microsoft Excelでは、マクロやVBA(Visual Basic for Applications)スクリプトを使って、機能やコマンドを自動化できます。VBAはExcelでマクロを作成するために使われるプログラミング言語で、特定の条件に基づいて自動コマンドを実行することも可能です。

マクロとは、あらかじめ記録しておいた一連のコマンドのことです。特定の操作を行うと自動的に実行されます。経理処理、プロジェクト管理、給与計算など、Excelで繰り返し行う作業があるなら、これらのプロセスを自動化することで大幅な時間節約につながります。

ExcelでVBAマクロ・スクリプトを作成する方法【初心者向け完全ガイド】

Excelのリボンの開発タブでは、マウスのクリックやキー入力をマクロとして記録できます。しかし、マクロだけでは対応しきれない複雑な処理もあります。そこでVBAスクリプトが大きな力を発揮します。VBAを使えば、より高度で複雑なスクリプトを作成できるのです。

この記事では、以下の内容について解説します。

  • スクリプトとマクロの有効化
  • Excelでマクロを作成する方法
  • マクロの具体的な使用例
  • VBAについてさらに学ぶ
  • VBAを始めるためのボタンの作成
  • ボタンに機能を持たせるコードの追加
  • 動作確認の方法

スクリプトとマクロを有効にする

ExcelでマクロやVBAスクリプトを作成する前に、まずリボンメニューの開発タブを有効にする必要があります。開発タブはデフォルトでは表示されていません。有効にする手順は以下の通りです。

  • Excelワークシートを開きます。
  • ファイル>オプション>リボンのユーザー設定をクリックします。
ExcelでVBAマクロ・スクリプトを作成する方法【初心者向け完全ガイド】
  • 開発の横にあるチェックボックスにチェックを入れます。
ExcelでVBAマクロ・スクリプトを作成する方法【初心者向け完全ガイド】
  • リボンメニューから開発タブをクリックします。
ExcelでVBAマクロ・スクリプトを作成する方法【初心者向け完全ガイド】
  • 次にマクロ セキュリティをクリックし、すべてのマクロを有効にする(推奨しません。危険なコードが実行される可能性があります)にチェックを入れます。
  • 続いてOKをクリックします。
ExcelでVBAマクロ・スクリプトを作成する方法【初心者向け完全ガイド】

マクロがデフォルトで無効になっており、警告が表示される理由は、マクロがコンピューターコードであり、マルウェアを含む可能性があるためです。

Excelやその他のMicrosoft製品で共有プロジェクトを進める場合は、ドキュメントが信頼できるソースからのものであることを必ず確認してください。

また、スクリプトやマクロの使用が終わったら、悪意のあるコードが他のドキュメントに感染するのを防ぐため、すべてのマクロを無効にしておきましょう。

Excelでマクロを作成する

マクロの記録中にExcelで行ったすべての操作は、そのマクロに追加されていきます。

  • 開発タブからマクロの記録をクリックします。
ExcelでVBAマクロ・スクリプトを作成する方法【初心者向け完全ガイド】
  • マクロ名ショートカットキー説明を入力します。マクロ名は必ず文字で始まり、スペースを含んではいけません。ショートカットキーには英字を指定します。

次に、マクロの保存先を以下の選択肢から決めます。

  • 個人用マクロブック:マクロを保存した非表示のExcelドキュメントが作成され、どのExcelファイルでも使用できます。
  • 新しいブック:作成したマクロを保存するための新しいExcelドキュメントが作成されます。
  • 作業中のブック:現在編集中のドキュメントにのみ適用されます。

設定が完了したらOKをクリックします。

  • 自動化したい操作を実行します。完了したら記録終了をクリックします。
  • マクロを使用したいときは、設定したキーボードショートカットで呼び出せます。

マクロの具体例

まず、顧客名と未払い金額をまとめた簡単なスプレッドシートを例にしましょう。ワークシートを書式設定するマクロを作成するところから始めます。

ExcelでVBAマクロ・スクリプトを作成する方法【初心者向け完全ガイド】

たとえば、「姓と名を別々の列に分ける」といった書式に、すべてのスプレッドシートを統一したいとします。

手動で変更してもよいのですが、マクロを使ったプログラムを作成すれば、正しい書式に自動的に整形してくれます。

マクロを記録する

  • マクロの記録をクリックします。ここではマクロ名をFormat_Customer_Dataとし、OKをクリックします。
  • 目的の書式にするため、最初の列の見出しをFirst Name(名)に変更します。
  • A列の隣に列を挿入し、Last Name(姓)と入力します。
  • 1列目の氏名全体(まだ姓名が一緒になっている状態)を選択し、リボンからデータをクリックします。
  • 区切り位置をクリックします。
ExcelでVBAマクロ・スクリプトを作成する方法【初心者向け完全ガイド】
  • コンマやタブなどの区切り文字によってフィールドごとに区切られたデータにチェック>次へ>スペースで区切り>次へ>完了の順に選択します。下のスクリーンショットのように、この操作で姓と名が分離されます。
ExcelでVBAマクロ・スクリプトを作成する方法【初心者向け完全ガイド】
  • 「支払残高(Balance Due)」フィールドを書式設定するには、金額部分を選択し、ホーム>条件付き書式>セルの強調表示ルール>指定の値より大きい>0の順にクリックします。
ExcelでVBAマクロ・スクリプトを作成する方法【初心者向け完全ガイド】

これで、残高があるセルが強調表示されます。書式設定の効果がわかりやすいよう、残高ゼロの顧客をいくつか追加しています。

  • 開発タブに戻り、記録終了をクリックします。
ExcelでVBAマクロ・スクリプトを作成する方法【初心者向け完全ガイド】

マクロを適用する

次に、マクロを記録する前の元のスプレッドシートに戻り、正しく書式設定してみましょう。マクロをクリックし、作成したばかりのマクロを選択して実行します。

マクロを実行すると、すべての書式設定が自動的に行われます。今回作成したマクロはVisual Basic Editor(VBE)に保存されています。

マクロの実行方法はいくつかあります。詳しくは「マクロの実行」に関する記事をご覧ください。

VBAについてさらに学ぶ

VBAについて学ぶには、開発タブからマクロをクリックします。自分が作成したマクロを見つけて編集をクリックしてください。

ExcelでVBAマクロ・スクリプトを作成する方法【初心者向け完全ガイド】

上のボックスに表示されているコードは、マクロを記録した際に自動生成されたものです。

同じ形式で他の顧客支払いスプレッドシートを書式設定したい場合も、このコードが実行されます。

VBAを始めるためのボタンを作成する

同じく顧客と未払い金額のスプレッドシートを使って、通貨換算ツールを作成してみましょう。

  • ボタン要素を挿入するには、開発タブに移動します。
  • コントロールセクションの挿入の横にあるドロップダウンからActiveX コマンド ボタンを選択します。
ExcelでVBAマクロ・スクリプトを作成する方法【初心者向け完全ガイド】
  • ボタンをスプレッドシート上の任意の場所にドラッグします。アクセスしやすく、後で変更もしやすい場所に置きましょう。
ExcelでVBAマクロ・スクリプトを作成する方法【初心者向け完全ガイド】
  • コードを割り当てるには、ボタンを右クリックしてプロパティを選択します。ここではNameCommandButtonのまま、CaptionConvert(変換)にします(これがボタンに表示されるテキストです)。
ExcelでVBAマクロ・スクリプトを作成する方法【初心者向け完全ガイド】

ボタンに機能を持たせるコードを追加する

VBAのコーディングはExcelの画面上では行われません。別の環境で作業します。

  • 開発タブに移動し、デザインモードがアクティブになっていることを確認します。
ExcelでVBAマクロ・スクリプトを作成する方法【初心者向け完全ガイド】
  • 先ほど作成したボタンのコードにアクセスするには、ボタンを右クリックしてコードの表示を選択します。
ExcelでVBAマクロ・スクリプトを作成する方法【初心者向け完全ガイド】
  • 下のスクリーンショットのコードを見ると、コードの冒頭(Private Sub)と末尾(End Sub)がすでに存在していることがわかります。
ExcelでVBAマクロ・スクリプトを作成する方法【初心者向け完全ガイド】
  • 以下のコードが通貨換算の処理を担います。

ActiveCell.Value = (ActiveCell * 1.28)

このセクションの目的は、スプレッドシート内の通貨を換算することです。上記のスクリプトは、GBP(英ポンド)からUSD(米ドル)への為替レートを反映しています。セルの新しい値は、現在の値に1.28を掛けたものになります。

下のスクリーンショットは、コードを挿入した後のVBAウィンドウの様子です。

ExcelでVBAマクロ・スクリプトを作成する方法【初心者向け完全ガイド】
  • 上部ナビゲーションのファイルから閉じてMicrosoft Excelに戻るをクリックし、Excelのメイン画面に戻ります。
ExcelでVBAマクロ・スクリプトを作成する方法【初心者向け完全ガイド】

うまく動いたか確認しよう

コードをテストする前に、まずデザインモードを無効化(クリックしてオフに)する必要があります。これにより、以降の意図しない修正を防ぎ、ボタンに機能を持たせることができます。

  • スプレッドシートの任意のセルに数値を入力し、Convert(変換)ボタンをクリックします。数値が約4分の1増えていれば成功です。

この例では、セルに「4」を入力しました。Convertをクリックすると、数値は「5.12」に変わりました。4×1.28=5.12なので、コードは正しく実行されたことになります。

ExcelでVBAマクロ・スクリプトを作成する方法【初心者向け完全ガイド】

これで、Excelでマクロやスクリプトを作成する方法が理解できました。これらを活用すれば、Excelでのさまざまな操作を自動化できます。

  1. Excel VBAでデータ入力フォームを作成する方法【初心者向け3ステップ完全ガイド】

    ExcelでVBAを活用していると、多くの方がデータ入力フォームの作成でつまずく経験をします。本記事では、VBAを使ってExcelに見栄えが良く使いやすいデータ入力フォームを作成する方法を、わかりやすく解説します。 Excel VBAでデータ入力フォームを作る3つの簡単ステップ ここでは、Washington(ワシントン)・New York(ニューヨーク)・California(カリフォルニア)という3つのワークシートを用意しました。これらには、銀行の3つの支店の顧客の氏名・連絡先・年齢・性別のデータが登録されています。 今回の目標は、VBAを使用してこのデータベースに新しいデータを入力できる

  2. Excelでマクロを使わずにボタンを作成する3つの簡単な方法

    本記事では、Excelでマクロを使わずにボタンを作成する方法を解説します。通常、特定のタスクを実行するボタンはマクロを使って作成するのが一般的ですが、実はマクロなしでも事前に定義されたタスクを実行するボタンを作成できます。今回は3つの方法をご紹介します。これらの方法を使えば、Excelで簡単にボタンを作成できるようになります。記事の最後では、「マクロの記録」機能を使ったボタンの作成方法についても触れます。 練習用ワークブックはこちらからダウンロードできます。 マクロなしでExcelにボタンを作成する3つの簡単な方法 方法の説明には、異なるシートにある2つのデータセットを使用します。1つ目のシー