はじめに
業務改善を目的としたExcelVBAの入門講座です。
「入門」と言ってもプログラミングが全く初めてという方には少々難しめのテイストになっていると思います。これは初歩的な説明よりも、「習うより慣れろ」で完結に話を進めるためです。
わかりずらい場合は、関連するリンクページを確認するようにしてください。
開発環境を整える
最初にVBAプログラミングを始めるためのVBE(Visual Basic Editor)の使い方を説明します。
VBEはたくさん機能があるので、最初は面喰ってしまいますが、最初は必要最低限の事だけマスターすればOKです。
手順通りに進めて、まずはVBAプログラミングを体験してみましょう。
>>開発環境を整える
VBAプログラムの基礎
プログラムの基礎となる以下の項目について、実際にプログラムを書きながら解説しています。
・変数 (Dim 変数名 As 変数型)
・繰返し処理 (For 変数 = 初期値 To 最終値 ~ Next )
・条件分岐 (If 条件式 Then ~ End If )
・オブジェクト(セル) Cells(行,列)
・VBA関数 MsgBox 文字列 (文字列を表示)
・文字列の結合 ( & )
>>VBAプログラムの基礎
VBAプログラムの基礎2
前回の内容を踏まえて、プログラムを変形させてみたり、肉付けして少しづつできる事を増やしていきます。
・Cells(行,列) = Cells(行,列) で値を転記
・Cells(行,列).NumberFormatLocal = Cells(行,列).NumberFormatLocal で書式設定を転記
・コメントアウト アポストロフィ(’)から行末は実行されない
・Rangeオブジェクトは単体のセルだけでなく複数のセルを指定できる
・Range().ClearContents はセルの値をクリアする
・If文 And、Or 演算子
・日付型を直接書く方法 (#7/31/2023#)
・Month関数 日付の「月」部分を取り出す
・同じ項目で合計値を得る
・同じようなプログラム部分を別関数にして呼び出す
>>VBAプログラムの基礎2
セルの使い方
VBAを使う上でセルのプログラミングは必須で、Range と Cells の使い方は避けて通れません。
Range と Cells はセルを参照するという意味では同じ機能を持ちますが、これからがプログラムでどのように使われるか解説しています。
更に、別シートのセル、別ブックのセルにどのようにアクセスするかについても解説します。
>>セルの使い方
ブックやシートの参照
別シートや別ブックの参照方法について解説しています。前回の解説では省略せずにセルの参照を行っていましたが、プログラムコードに冗長になりすぎて見づらくなってしまいますので、効率的に別シートや別ブックにアクセスする書き方を学びます。
更にVBAでシート・ブックを扱う方法も学びます。
>>ブックやシートの参照
プログラムでの日付の扱い方
Excelでは日付の扱い方が特殊です。構造的にはシリアル値と書式設定という2つの要素から成り立っています。
更に、セルに代入する際に日付と判断される文字列は自動変換されて日付型に変化します。
業務改善などでは日付の扱いは必須となりますので是非マスターしてください。
>>プログラムでの日付の扱い方
プロシーシャの使い方
VBAプログラムはプロシージャという単位でプログラミングします。他のプログラミング言語で言う「関数」です。
既にいくつかのサンプルプログラムでプロシージャを使っていますが、ここでは詳しく解説します。
具体的には、Sub、Functionという2種類のプロシージャ。プロシージャの持つ「引数」「返り値」などの使い方を学びます。
>>プロシーシャの使い方
「マクロの記録」を利用する
「マクロの記録」を使うと行った動作をプログラムコードとして生成してくれます。
ここまでの知識を通して、「マクロの記録」が生成したプログラムコードを読み解いてみましょう。
さらに改造して自分の思い通りの動作をさせてみます。上手く利用すればプログラミングの可能性が広がります。
>>「マクロの記録」を利用する
デバッグのやり方
デバッグは、プログラムが思った通りの動作をしない場合、その不具合を探すために行います。
デバッグの機能はVBEに備えられており、主に2つの機能があります。
・プログラムを途中で止める
・変数やオブジェクトの中身を見る事ができる
実際のプログラムでデバッグを行いながら使い方を学んでいきます。
>>デバッグのやり方
やりたい事の調べ方と解決方法
この講座でVBAの全てを網羅しているわけではありません。自分で疑問で思った事はネットで調べると思いますが、そのノウハウについて解説しています。
>>やりたい事の調べ方と解決方法
自力でプログラムを書いてみる
サンプルデータを使って必要な値を取りだすようなプログラムを作っていきます。
実際にどのようにプログラムを組み立てていくのかを体験しましょう。
>>自力でプログラムを書いてみる
別ブックのデータを集計
フォルダ内にある複数のブックから値を取りだすプログラムを解説しています。
VBAで複数のブックを扱えるようになれば、相当の腕前と言えるでしょう。
長いプログラムや難しいプログラムを読み解いていく事は実力アップにつながります。
最初はわからなくても2度、3度と挑戦してみてください。
>>別ブックのデータを集計
別ブックのデータを集計2
これまでのプログラムは起こりうるエラーに対して無関心でした。
実際にプログラムを走らせるとき、途中でエラーが起こると困るような処理もあります。
ここではエラーを想定したプログラムの書き方を学びます。
>>別ブックのデータを集計2
記事に関する質問はこちらまでお願いします。