【プログラミング】エクセルでVBAの始め方を初心者にもわかりやすく解説

プログラミング
komori
komori

こんにちは。
今回はエクセルでプログラミングができるVBAの基本と始め方を解説していきます。

この記事はこういう人におすすめできます
  • VBAって聞いたことがあるけど、一体どういったものから知りたい

  • エクセル関数が使えるけどシート上に複雑な数式を組むと処理重くなってので何とかしたい

  • もっとエクセルが便利に使えるようになりたい

  • VBAを覚えて事務作業をもっと効率的にすすめていきたい

  • これからプログラミングを覚えていきたい

結論
  • VBAとは一体どういったものか
    Microsoft Officeシリーズに搭載されているプログラミング言語。

  • VBAの始め方と必要な環境・設定方法
    マイクロソフトエクセルがあればエクセル内の設定を変更するだけでプログラミングは始められる。

  • VBAを覚える利点・メリットとは
    エクセルでの作業や他のアプリ連携で作業が効率化・自動化できる。
    プログラミングにおける基本的な思考や文法が他の言語に活かせる。

  • ブログ主がVBAでやってみたこと
    フォームを使って社内向けのシステムとして運用する
    インターネット上の最新データとの照合と判定

エクセル(Excel)VBAはプログラミング言語なのか。

エクセル(Excel)VBAはプログラミング言語

VBA(ビジュアル・ベーシック・フォー・アプリケーション)は汎用プログラミング言語です。

VBAはマイクロソフトオフィスに含まれる文書作成アプリのワード、表計算アプリのエクセル、データベースアプリのアクセス・プレゼン資料作成などに利用するパワーポイント、メールの送受信が行えるアプリであるアウトルックなどを操作することが可能です。

komori
komori

VBAはあの有名な会社である「Microsoft」が1990年代に開発したVB(ヴィジュアル ベーシック)をオフィスに搭載したものです。

↓↓↓VBAの歴史についてもっと詳しく知りたい人はこちらです。↓↓↓

エクセル(Excel)VBAで出来ること

ワードやエクセルなどの単体アプリを動かすことはもちろんのこと、他のマイクロソフトオフィスのアプリ間の連携を行って操作することも可能です。

例えば、インターネットに接続してクラウドシステムからCSVダウンロードして特定のエクセルファイルにコピーしたり、エクセルの顧客リストに登録している宛先に対して順番にメールを送信するなども可能です。

komori
komori

アプリを連携するレベルになると実務でもかなり強力な武器となります。
先ずはエクセル単体で慣れていくように進めていくことがおすすめです。

エクセル(Excel)VBAとエクセルのシート関数や数式と異なる点

エクセルで関数や数式が扱える人にとっては、VBAを使わなくでもできることがたくさんあります。
但し、VBAを使うメリットもあるのは事実ですので、使い分けたり併用することで機能を実装することもあります。

エクセルの場合は実装したい機能の内容によってVBAと関数を併用できる良さがあります。

エクセル(Excel)VBAとエクセルシート関数や数式との違い
  • 基本的にシート関数では繰り返し処理はできない

  • シート上の数式や関数はユーザーによって意図せず編集されてしまう恐れがある

  • シート上の数式が複雑になったり、大量になるとファイルの容量が大きくなる

  • 原則として関数や数式を実行する契機が自分で設定できない

エクセル関数はとても優秀で続々と更新されていますが、ワークシートのセル上に書くためにユーザーが意図せず消してしまう恐れがあります。また、セル上に複雑な数式を書くとファイルの容量が大きくなり動作が悪くなります。

処理をするファイルやアプリの環境において、意図しない数式の削除やファイルの容量が大きくなることが予想される場面はエクセル(Excel)VBAで処理を実装する方法が有効です。

komori
komori

エクセル(Excel)VBAのコードでエクセルのワークシート関数を使用することも可能です。

エクセル(Excel)VBAとマクロとの違い

エクセル(Excel)VBAについて調べたり、学習をはじめると「マクロ」というワードもどこかで必ず見かけます。
ここではVBAとマクロとの違いについて解説します。

マクロとは

簡単に言えばマクロはコンピューターの操作を自動化する機能そのもの。

この説明だけではピンとこない人も多いかと思いますので、更に掘り下げて言うとエクセル(Excel)VBAもマクロを作る方法の内の1つであり、VBAでプログラムを書くことでマクロという機能を動かしていることになります。

また、エクセルのマクロの記録・実行はVBAの様に事前に記録した一連の操作を簡単に実行できる機能ですが、コーティング(プログラミング)をしない点が大きな違いと言えるでしょう。

じつはエクセルで行うマクロの記録も、コンピュータがユーザーの操作からコーティング(プログラミング)をしています。
自動でコードが作成される便利さはありますが、省力化には不可欠の繰り返し操作の記録ができないことや、作られたコードの用途をより最適化するためにも、ある程度VBAの知識をつけておくべきと言えます

エクセル(Excel)VBAとマクロとの違い
  • VBAもマクロという機能を動かすための方法の1つである

  • マクロの記録ではプログラミングをしなくても操作を自動化できる

  • マクロの記録で操作を記録したものがコンピュータによってコード化される

  • コンピュータによってコード化されたものがユーザーが満たしたい機能にとって最適でない場合がある

  • マクロの記録では繰り返し操作を自動化できない

エクセル(Excel)VBAの始め方と設定方法

エクセル(Excel)VBAを始めるときに必要な環境

それではVBAをはじめるにあたって必要な環境について説明します。

と言っても、パソコンにマイクロソフトオフィス(もっと言えばエクセル)が入っていればVBAプログラミングをはじめることができます。

エクセルでVBAプログラミングをはじめるための設定手順がありますので次で紹介していきます。

komori
komori

一般的なパソコン環境でプログラミングを始められる手軽さがVBAの良さと言えます。

エクセル(Excel)VBAを始めるときの設定方法

まずはエクセルを起動しましょう。

エクセルが起動したら、以下の画面で「オプション」を選択します。

画面左下にある「オプション」を選択します

リボンのユーザー設定を選択し、メインタブより「開発」にチェックを入れてOK

これでリボンに「開発」タブが表示されます。

「開発」タブより「Visual Basic」をクリックすればVBE(Visual Basic Editor)と言われる開発環境が起動します。

ショートカットキー”Alt+F11″でも起動します。
(※”Fn”キーがある場合は”Fn+Alt+F11″で起動します。)

フォルダ選択状態で右クリックして「挿入」から「標準モジュール」を選択すれば準備完了です。

ショートカットキー”Alt” +”I” + “M”でも同じ操作が可能です。

標準モジュール「Module1」が作られました。これでVBAのコードを書いていくことができます。
※実際にコードを書いていくエリアは黄色で囲んだ部分となります。

Visual Basic Editorの初期設定では白い画面が表示されているでしょう。
初期設定での表示が見づらければ表示設定を変更することもできるので画像の様に変更した後の黒い画面になっています。

表示設定は以下の参考リンクのサイトが丁寧に紹介してくれていますのでおすすめです。
※外部サイトに接続します。

エクセル(Excel)VBAを使える利点・メリットは

ここではVBAを学ぶ・使うことでのメリットについて紹介します。

VBAを習得することで得られるメリットは大きく分けて2点になりますのでそれぞれについて説明します。

エクセル(Excel)VBAを始めて繰り返し処理を省力化・自動化

最も目に見えて変わるところとして、繰り返し作業を効率化・自動化できるところです。
またこれらを指定したきっかけ(契機)で完了できたりするところです。

例えば、ワークシートにボタンを設置してそのボタンを押すと処理がはじまるプログラム
表のデータが更新されたこときっかけで集計するプログラム、さらには時間指定で動き出すプログラムなど。

最初にプログラムを書くための時間こそ必要となりますがエクセルのワークシート上の数百や数千行などの膨大な表があった場合の処理などについても作業時間の短縮や正確性は向上し、労力は劇的に減少します。

また、エクセル関数のように表のデータの数に合わせて事前に書き込むのではなく、表の最終行を読み込んで処理することも可能なので、一度プログラムが上手く機能するようになれば表内のデータ数が増えていってもずっと使い続けられる点も大きいでしょう。

VBAを習得するメリット(作業効率化)
  • 繰り返し作業を効率化・自動化

  • プログラムを開始する契機を指定することができる

  • エクセル上の表のデータの量に応じて処理ができる

エクセル(Excel)VBAを学ぶと他のプログラミング言語も学びやすくなる

VBAを学習することで得られるメリットで作業効率化や自動化以外で言える部分として、他のプログラミング言語を学習していくステップにもなるというところも大きいです。

プログラミング言語は世の中にたくさんあり”VBA”や”Python”以外にも「Java」や「JavaScript」、「SQL」、「GAS」、「PHP」なども触ったことがありますが、いずれの学習においても理解のしやすさは変わってきます。

komori
komori

エクセルVBAを使っている内にプログラムの基本が学べるので、文法が異なる言語も習得しやすくなります!

他に「クラウドワークス」や「ランサーズ」などのクラウドソーシングサービスにおいて、VBAを扱う案件も出ることもありますので副業やフリーランスエンジニアとしての需要があるということでしょう。

VBAを習得するメリット(その他)
  • 他のプログラミング言語を学習が容易になる

  • クラウドソーシングなどで専門職として一定数の需要がある

「エクセルでVBAの始め方を初心者にもわかりやすく解説」まとめ

まとめ
  • VBAとは一体どういったものか
    • エクセル、アクセス、ワード、アウトルック、パワーポイントなどのアプリケーションを操作したり・カスタマイズしたりできるプログラミング言語であり、WindowsやmacOS上で動作が可能

  • VBAの始め方と必要な環境・設定方法
    • VBAのソースコード作成・編集ソフトウェアおよびプログラム実行環境を別途準備する必要がなく、Officeのみで特別な環境準備や設定は不要である。

  • VBAを覚える利点・メリットとは
    • Officeを使ってデータベースや帳票管理をしている職場では貢献度は高い
    • 毎回行う繰り返し作業や機能を自動化し、作業負担を減らすとともに効率化が可能
    • プログラミング言語による作法の違いはあれど、他の言語を学ぶ上でもVBAで得た知識は役立つ

ここではこれからVBAを始める人に向けてVBAとは一体どういったものか。
VBAの始め方や必要な環境とは、更にはVBAを学習するメリットについて紹介しました。

エクセル(Excel)VBAをこれから勉強したいと考えている人にとって、この記事の内容が少しでもお役に立てたのであれば幸いです。

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村
PVアクセスランキング にほんブログ村コダマのもりブログ - にほんブログ村

コメント

タイトルとURLをコピーしました