エクセルVBA超入門!プログラミングと変数の基礎中の基礎

★気に入ったらシェアをお願いします!

Study

ThePixelman / Pixabay


みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

この記事をご覧になられているということはVBAに少なからず興味がおありのことと思います。

多くの人がVBAを使えるようになると日本の生産性は確実にそして劇的に上がるはず…!それを目指して鋭意記事を書いてまいります。

さて、こちらの記事ではプログラムを書く前までの準備を紹介しました。

エクセルVBA超入門!たった10分でスタート地点に立つための方法
エクセルVBA…まず何をしたら良いかわからない…!という声をよく耳にします。今回はVBAプログラミングをいざ書き始める直前の状態を目標に、エクセルVBAの最低限のセッティングの仕方についてお伝えします。

今回は、それに引き続きましてそのまんまやってVBAに唾をつけていこうシリーズの第2回となります(そんなシリーズだったか?)。

実際に簡単なプログラムを組んで実行をするところまでやってみて、VBAプログラミングの一通りの流れ基本的なプログラムの書き方について理解いただくのを目標にします。

書いてある通りに進めて頂ければOK!

はっきり言って題材は面白くとも何ともないプログラムなので、その点だけは我慢してお付き合い下さい。

どうぞよろしくお願いします!

VBAプログラムを書いてみる

コードウィンドウに以下プログラムを記載します。

変数の宣言を強制にしている場合はOption Explicitと記載があると思いますのでその下に記述してください。

できればコピペではなくてちゃんとタイプをしてもらいたいです。
そのほうが覚えると思います。

VBAプログラムの実行

では実行してみましょう。コードウィンドウのどこかにカーソルがあることを確認して

VBE実行ボタン

こちらのツールバーの実行ボタンをクリック。

またはショートカットキー F5 でもOKです。

VBAプログラム実行結果

実行結果ですが、イミディエイトウィンドウに謎の値が3つ表示されれば成功です。

それでは実際にこのプログラムの内容を解説していきます。

プログラムをSubプロシージャの中に書く

まずVBAプログラムは、プロシージャと呼ばれるまとまり単位で記述をしていきます。

プロシージャにはいくつか種類がありますが、今回はSubプロシージャを使います。最初のうちは、ほぼSubしか使わないと思いますので、まずはそれだけ覚えてください。

Sub プロシージャ名()で始まりEnd Subで終わるというルールになっています。

好きなコメントを書く

シングルクオーテーション「’」の後には好きなコメントを入れることができます。

デバッグの時や後で見返すときに楽ですので、コメントはできるだけつけておいたほうが良いです。

Dimで変数を宣言する

変数とは数値や文字列や日付などを入れることができる箱のことです。

変数は使う前に「こういう名前の箱を、このタイプで使うからね」と宣言をしておく必要があります。

記述方法は

Dim 変数名 As 変数の型

となります。

変数の型はいくつか種類がありまして、その型にマッチしたものしか入れることができません。

例えば、Long型の箱に文字列を入れることはできないということですね。

変数の型にはいくつか種類がありますが、ひとまず整数型Long、文字列型String、日付型Dateの3つをここでは覚えて頂ければと思います。

変数に値を代入する

変数にはイコール「=」を使って値を代入します。

変数名 = 値

numTestとい変数の中には505という数値が、strTestという変数の中には0505という文字列が…といったカタチで格納されます。

文字列型と日付型の場合は代入する値をダブルクオーテーション「”」で囲う必要があります。数値の場合はダブルクォーテーションは不要です。

Debug.Printで変数の値を出力する

Debug.Printは変数の中身を知るためのデバッグ用の命令で

Debug.Print 変数名

と書きます。

その命令が実行された時点での指定された変数の中身がイミディエイトウィンドウに表示されます。

デバッグ用なので使わなくてもプログラムが成立する場合がほとんどです。

ただ、初心者のほうがプログラムのミスが多いと思うので、Debug.printを使いこなしておいたほうが習得が早くなります。

代入した時点でdataTestには”5/5″と代入しましたが、実行結果でイミディエイトウィンドウに表示されたのは「2015/05/05」でした。

これは日付型の便利なところで、年を省略すると自動で現時点での年として認識をしてくれます。

覚えておくと便利ですよ。

Debug.Printについてもっと詳しく知りたい方は以下の記事もご参考下さい。

【エクセルVBA】初心者のうちから知っておくべきDebug.Printの使い方
今回はエクセルVBAでイミディエイトウィンドウを使う方法の超基本として、初心者のうちからぜひとも知っておいて欲しいDebug.Printの使い方です。一行に複数の出力をする方法も解説していますよ。

まとめ

たいしてつまらないプログラムなのによくここまでお付き合い頂きました。ありがとうございます。

エクセルVBAの基本の基本は以上の通りです。

  • VBAプログラムはF5キーで実行
  • プログラムはSubプロシージャの中に書く
  • シングルクォーテーションの後に好きなコメントを書く
  • Dimで変数名とその型を宣言する
  • イコールで変数に値を代入する
  • Debug.Printで変数の中身を出力

これで正しいプログラムを実行できるVBAの経験者になりました。

まだまだできることは無数にありますので、実際にお仕事に活用するにはもう少し勉強が必要です。

ただ、WEB上には先人たちの知恵が大量に出回っていますので、ネット検索だけでもある程度学べるのではないかと思います。

当ブログでは以下ではじまる請求書シリーズをオススメしていますので、ぜひトライしてみてください!

【初心者向けエクセルVBA】データ一覧から請求書を自動で作る
初心者向けVBAの実用的な使い方について、請求データ一覧から請求書を自動で作成するを目標に進めます。初回はシートを取り扱うためのWorksheetオブジェクトの準備とセルの値の操作についてお伝えします。

連載目次:エクセルVBAを始める前の準備をしよう

  1. 1,200万人の事務員たちよ、VBAという武器を手に戦いに出よ!
  2. エクセルVBA超入門!たった10分でスタート地点に立つための方法
  3. エクセルVBA超入門!プログラミングと変数の基礎中の基礎

連載目次:データ一覧から請求書を自動で作る

お仕事において特定のデータ一覧から必要な情報を抽出するということは頻繁にありうると思います。ここではデータ一覧から請求書を作るということを目標に、実務で使えるスキルをまっすぐに身に着けることを目的としています。
  1. 【初心者向けエクセルVBA】データ一覧から請求書を自動で作る
  2. 【初心者向けエクセルVBA】For~Next文で簡潔にプログラムを書く
  3. 【初心者向けエクセルVBA】行の数をカウントする&不要な行を隠す
  4. 【初心者向けエクセルVBA】文字列の連結&Format関数での書式変更
  5. 【初心者向けエクセルVBA】If~Thenを使った条件分岐の超入門
  6. 【初心者向けエクセルVBA】Public変数の宣言とSubプロシージャの呼び出し
  7. 【初心者向けエクセルVBA】InputBoxでの日付入力と月末日の自動算出
  8. 【初心者向けエクセルVBA】Worksheetのコピーを活用して複数の請求書を作る
  9. 【初心者向けエクセルVBA】ファイルのコピーを使って取引先別の請求書を作る
  10. エクセルVBAでDateAdd関数を使って年月を条件としてSumIfs関数を使う方法
  11. 宣言もセットも不要!エクセルVBAでワークシートをオブジェクト名で取り扱う方法
  12. エクセルVBAでシートの列の挿入も簡単に対応できちゃう列挙体の使い方

コメント

  1. 李 勇男 より:

    すごくわかりやすく、役立ちます。

  2. でっち より:

    分かりやすくて良かったです。
    ありがとうございます。
    自分は、VBAで何か作ってみたいのですが、
    どうすればいいのか分かりません・・・
    できれば、続編みたいなので教えてほしいです。

    • でっち様

      コメントありがとうございます!

      そうですね…一応以下記事などが次にトライいただく記事にあたるのですが、いかがでしょうか?

      【初心者向けエクセルVBA】データ一覧から請求書を自動で作る
      初心者向けVBAの実用的な使い方について、請求データ一覧から請求書を自動で作成するを目標に進めます。初回はシートを取り扱うためのWorksheetオブジェクトの準備とセルの値の操作についてお伝えします。

      他に具体的にこんなのが…というものがあれば、おっしゃって頂ければと思います!

  3. ガブリアス。 より:

    なかなかVBAを自宅で学べる講座もなかったのでとても助かります!

    費用の問題もあり、自己投資大事なのは承知の上でも金額が…と悩んでいたところ行き当たりばったり。

    VBAに関してはタカハシさんのサイト一本で勉強していきます!

    • ガブリアス。さん
      コメントありがとうございます!
      ネットだけでも少しずつ階段を上るようにスキルアップができればと思って書いています。
      引き続きお役に立てれば嬉しいです。