【VBA入門】Excel2019で簡単プログラミング:今から始める業務効率化

2019 12/11
【VBA入門】Excel2019で簡単プログラミング:今から始める業務効率化

こんにちは、理系夫婦の妻まゆみ(@rikeifufu_tsuma)です。

今までは夫たんたんがプログラミングの記事を書いていました。主にFortran、Pythonのことですね。

でも、実は私も仕事でプログラミングをしていまして。

主にC,C++,C#,Fortran,VBAを使ってツールを作ってきています。

他のSEさんからしたら、古い言語ばっかり・・・と思われるかもしれません。

私がいる部署は、某研究業界を主な顧客にしているため、古い言語を使ったツール開発の依頼が結構あるのです。

私も夫のようにプログラミングの記事を書きたいから、どの言語にしようか考えてみました。

そこで白羽の矢が立ったのが「VBA」です。

一番多くの人の役に立ちそう。そしてVBAは私でも独学で習得できた言語なので、プログラミング初心者でも始めやすい。そう思っています。

今回は、なんでVBAが役に立つのか、なぜ簡単に始められるのかを紹介します

これからシリーズ化して、VBAで業務効率化するテクニックを紹介していく予定です!

自分の忘備録も兼ねて書いていきますね。

目次

VBAとは

VBA(Visual Basic for Applications)は、Visual BasicをExcelなどのアプリケーションで簡易的にプログラミングできるものです。

具体的な説明は以下のサイトが分かりやすかったのでどうぞ↓

VBAとは?マクロとは?初心者向けにわかりやすくExcelVBAなどを解説|Samurai Blog

私がVBAについて説明するのは、本筋からずれるのでこれだけにしておいて、次からは何故VBAがいいのかを熱弁していきます。

なぜVBAがいいのか?

VBAのメリット・デメリットを挙げてみました。

もうね、VBAを一言でいうと、「簡単」です。

VBAのメリット

VBAを始めるメリットを思いつくままに挙げてみます。

  • Excelが入っていれば、すぐに始められる
  • 検索すれば情報がたくさん出てくるので独学で学べる
  • ユーザー操作画面を簡単に作れる
  • データ集計やグラフ作成を自動化できる
  • VBAで作成したツールを、ほかのExcelを使用する人に配布できる

基本的に、日本のほとんどの会社や役所では、作業PCにはExcelが入っているのではないかと考えられます。

Excelが入っていればすぐに始められる

これが1番のメリットです。

そして、書籍での勉強やプログラミングスクールでの勉強をしなくても、Webで情報を集めるだけで、ある程度のツールは作ることができるようになります。実際に私がそうです。

VBAで処理を自動化するだけで、簡単に業務効率化が図れます。

そして、Excelはほとんどの人が持っているので、作ったツールを他の人にも使ってもらうことができます。使う側もいちいち環境整備しなくていいのです。

VBAを使いこなせるようになると、作業の効率化ができるだけでなく、転職などでも強みになると思います。単に「事務作業ができます」よりも「事務作業をVBAで効率化できます」のほうが断然魅力的ですよね。

簡単に始められて、マスターするのも難しくないのがVBAです。

VBAはExcelで簡単に始められるプログラミング言語

VBAのデメリット

メリットばっかり書くのもダメなので、思いつくデメリットも紹介します。

  • 細かい数値計算には向かないと思う
  • Excelがないとできない

そもそもExcelが入っていないとVBAはできません。

そしてもう一つ、細かい数値計算に向かないのは、Excelが保持できる数値の桁数が関係してきます。Excelはセルに表示できる数値の桁数は15桁までなので、VBAでも15桁になってしまいます。他の言語(Cとか)だとdouble型は16桁ですので、1桁少ないのです。

VBAで16桁まで気にする数値計算をしようとする人はいないと思いますが、念のためデメリットにあげています。

あくまでもExcelを使った簡易的なプログラミングをするのがVBAです。

スポンサーリンク

VBAの始め方(Excel2019の場合)

VBAに興味を持った方、すぐに始めてみたい方はこちらをご覧ください。始め方を説明します。

Excelの初期状態ではVBAを始めるためのタブが用意されていません。

まずはVBAをするための「開発」タブを表示されるようにし、VBA開発画面を出してみましょう。

手順は以下です。

  1. Excelを開く
  2. 「ファイル」タブを選択
  3. 「オプション」を選択
  4. 「リボンのユーザー設定」を選択
  5. 「開発」にチェックを入れる
  6. 「開発」タブを選択
  7. 「Visual Basic」を選択
  8. プロジェクトウィンドウ上で右クリック
  9. 「挿入」→「標準モジュール(M)」をクリック

具体的に画面で説明していきます。なお、私が使用しているのはExcel2019です。

手順1:Excelを開く →手順2:「ファイル」タブを選択

Excel初期状態画面
1.Excel初期状態→2.「ファイル」タブの選択

Excelを新しいブックの作成で開くと、上図の状態かと思います。

左上にある「ファイル」タブを選択しましょう。

手順3:「オプション」を選択

「ファイル」タブを開いた状態の画面
2.「ファイル」タブを開く→3.「オプション」を選択

左側に出てきたリストの一番下、「オプション」を選択しましょう。

手順4:「リボンのユーザー設定」を選択

「オプション」選択後の画面
4.「リボンのユーザー設定」を選択

「オプション」選択後に出てくる画面の左側から、「リボンのユーザー設定」を選択しましょう。

手順5:「開発」にチェックを入れる

「リボンのユーザー設定」画面
5.「開発」をチェック

「リボンのユーザー設定」画面の右側の中から、「開発」にチェックを入れ、OKをクリックしましょう。

手順6:「開発」タブを選択→手順7:「Visual Basic」を選択

「開発」タブの画像
6.「開発」タブを選択→7.「Visual Basic」の選択

これで「開発」タブがリボンに追加されました。

VBAを始めるには、「開発」タブを選択し、一番左側の「Visual Basic」をクリックしましょう。

手順8:プロジェクトウィンドウ上で右クリック
→手順9:「挿入」→「標準モジュール」の選択

VBA画面
8.プロジェクトウィンドウ上で右クリック

「開発」タブで「Visual Basic」を選択すると、VBA画面が別ウィンドウで表示されます。

初期状態で左側に表示されているプロジェクトウィンドウ(ファイル名やシート名がツリー状に書いてある場所)で右クリックします。

標準モジュールの挿入画面
9.「挿入」→「標準モジュール」を選択

右クリックメニューの中から、「挿入」→「標準モジュール(M)」と選択しましょう。

VBAのソースコードエディタの表示
VBAのエディタが表示された

VBAのソースコードを記述する画面が表示されました!

簡単な例

ここでは、VBAを使ったツールの例を示します。興味がある人はご覧ください。

簡単な処理しかしていませんが、基本的な処理です。

たいていの場合、今回の試作ツールの応用で業務効率化はできてしまうと思っています。

試作例

では、VBAを使った簡単な計算処理を試作してみます。

今回は、Excelのシートに入力された2つの数値を四則演算して表示する、という簡単なツールを作ってみました。

簡単な内容ですが、実際の処理は

  • ボタンを関数に結び付ける
  • セルの値を取得
  • 計算
  • 計算結果の表示

と、初めてVBAをやるにしてはボリュームが多めかもしれません。

試作したツール画面が以下です。

試作ツールの画面

C2セル、C4セルに数値を入力し、「ボタン1」を配置しました。

ツール実行結果画面

試作ツールの実行結果です。

「ボタン1」をクリックすると、C2セルとC4セルの数値から演算した結果がメッセージボックスで表示されます。

この試作ツールの作り方を以下に書いていきます。

スポンサーリンク

メイン関数とボタンの設置

まずはボタンを設置する手順です。

ボタンを設置する前に、関数の枠組みだけは作っておきましょう。

でないと、ボタン作成時にボタンと関数を紐づけできませんので。

メイン関数の枠組み
メイン関数の枠組み

関数は、戻り値がない関数でしたら

Sub 関数名

End Sub

で括ります。

C言語でいうところの
void main (){}
みたいな感じです。

さて、関数の枠組みだけ作ったら、Excelのシートに戻り、ボタンを設置しましょう。

ボタンの設置方法
ボタンの設置

「開発」タブの「挿入」から、「ボタン」を選択します。

ボタンを設置したい場所をドラッグして選ぶと、「マクロの登録」画面が表示されます。

マクロの登録画面
マクロの登録画面

ここで、先ほど枠組みだけ作ったメイン関数を選択して「OK」をクリックしましょう。

ボタン設置後

これでボタンが設置できました!

ソースコード

ボタンと関数の紐づけができたら、実際に関数に処理を記述していきましょう。

今回のツールのソースコードは以下のようになります。

試作ツールのソースコード
試作ツールのソースコード

注意:本当はセルの値が数値がどうかチェックしたり、bの値が0でないかチェックしないといけませんが、今回はその処理は省いています。

このソースコードの説明を以下にしていきます。

ソースコードの解説

上記ソースコードは以下の流れで書かれています。

  1. 変数の宣言
  2. セルの値を読み込む
  3. 四則演算
  4. 計算結果の表示

では、順にソースを見ていきましょう。

変数の宣言

この部分で変数を宣言しています。

VBAでの変数の宣言方法は、

Dim 変数名 As データ型

となります。

変数は、入力の2つの数値a,b、そして計算結果を入れるplus,minus,times,divを宣言しました。

データ型は、すべてDouble型(少数も格納できるデータ型)にしてあります。
入力のa,bはInt型(整数のみ格納できるデータ型)にしても構いません。

セルの値を読み込む

この部分で、Excelシート上の2つの値を取得しています。

変数aにはC2セルの値を代入し、変数bにはC4セルの値を入れています。

今回の試作品は、シートは「Sheet1」の1つしかないので、上記のような簡単なコードで値を取得できますが、シートが複数ある場合や、Excelブックを複数開いている場合は、ブック名とシート名を指定しないと上手くいかない場合があります。

四則演算

この部分で変数a,bを使って計算しています。

四則演算の方法は他のプログラミング言語と一緒ですし、Excel関数で使用するものとも同じです。

計算結果を表示

この部分で計算結果をメッセージボックスで表示しています。

MsgBox “文字列”

でメッセージボックスが表示されます。

今回のコードには3つのポイントがあります。

①数値を文字列に変換 CStr

計算結果を表示するには、Double型から文字列型(String型)に変換する必要があります。

VBAでは、簡単に

CStr(value)

で文字列に変換できます。valueはDouble型に限らず、Int型でも大丈夫です。

②文字列の改行 vbCrLf

表示させたい文字列を途中で改行したい場合は

vbCrLf

という改行コードを挿入します。

今回の場合だと、

計算結果(改行)
a+b=##(改行)

となるように「vbCrLf」を挿入してあります。

③ソースの改行

今回のようにMsgBoxの文字列が長くなる場合、その文字列を1行で書くとソースコードが読みにくくなってしまいます。

そんなときには、適宜改行しましょう。

「 _」(半角スペース+アンダーバー)

で改行ができます。


これで試作ツールのソースの説明を終わります。

まとめ

ちょっと長くなったうえに試作ツールの説明まで加えてしまって、伝えたいことが伝わったか不安です。

伝えたいことは、

VBAは簡単に始められるから、ぜひやってみよう!!

です。

VBAの始め方や試作ツールはおまけで、今はソースの中身が理解できなくても問題なし!です。

これからVBAのことを私なりにまとめていく予定です。
多くの人に、「VBAは案外簡単、仕事を効率化できた~」と言ってもらえるように記事を書いていきますので、よろしくお願いします!

んじゃ、また~

関連記事

応援よろしくお願いします☆

この記事を書いた人

理系夫婦の妻のほうです。
大学、大学院(修士)で物理を専攻。
2016年に長女を出産。
フルタイム勤務ワーママ→休職中。
「CrowdWorks(クラウドワークス)」でお仕事受け付けております!
(ツール開発、記事執筆など)
「まゆみ1101」というユーザー名です!

コメント

コメントする

目次
閉じる