よく使う参照設定(Scripting・ADODB・Outlook・PowerPoint)を使い方付きで解説
生徒
「Excel VBAで参照設定って聞くんですが、どれを使えばいいのか分かりません…」
先生
「よく使われる参照設定はいくつか決まっています。役割を知ると選びやすくなりますよ。」
生徒
「名前も難しそうで不安です…」
先生
「大丈夫です。道具の名前と使い道をセットで覚えていきましょう。」
参照設定はVBAに道具を持たせる仕組み
Excel VBAの参照設定とは、VBAに「使ってよい機能の道具箱」を渡す作業です。 参照設定を行うことで、Excelだけではできない便利な操作が可能になります。
例えば、ファイル操作を細かく行ったり、データベースに接続したり、 OutlookやPowerPointを自動操作したりする場合に参照設定が必要になります。
プログラミング未経験の方は、 「参照設定=便利な追加機能を使えるようにする準備」 と覚えておくと理解しやすくなります。
Scripting Runtime参照設定の役割と使いどころ
Scripting Runtimeは、ファイルやフォルダを扱うときによく使われる参照設定です。 パソコンの中にあるファイルを調べたり、フォルダを作成したりする作業が得意です。
これは、倉庫の中身を一覧で管理する担当者のような存在です。 Excel標準の機能よりも、分かりやすく安全にファイル操作ができます。
ファイル名の取得や存在チェックなど、 日常業務の自動化で登場する場面が多いため、 初心者の方でも比較的早い段階で目にする参照設定です。
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
ADODB参照設定でデータをまとめて扱う
ADODBは、データベースや大量のデータを扱うための参照設定です。 Excelの表を「データのかたまり」として扱えるようになります。
イメージとしては、たくさんの書類を一気に並べ替えたり、 条件で抽出したりする整理係のような存在です。
CSVファイルや別のExcelファイルからデータを読み込む場合にも使われるため、 業務自動化では非常に出番が多い参照設定です。
Dim cn As Object
Set cn = CreateObject("ADODB.Connection")
Outlook参照設定でメール操作を自動化
Outlook参照設定を使うと、Excel VBAからOutlookを操作できるようになります。 メールの作成や送信、受信トレイの確認などが自動で行えます。
これは、秘書が代わりにメール作業をしてくれるようなイメージです。 定型文メールの送信や報告メール作成で力を発揮します。
会社でExcelとOutlookを併用している場合、 作業時間を大きく短縮できる便利な参照設定です。
Dim olApp As Object
Set olApp = CreateObject("Outlook.Application")
PowerPoint参照設定で資料作成を効率化
PowerPoint参照設定を使うと、Excelのデータを使って プレゼン資料を自動作成できます。
毎回同じ形式の資料を作る場合、 数字だけを差し替えてスライドを作る作業が不要になります。
これは、設計図をもとに自動で同じ家を建てるような仕組みです。 手作業のミスを防ぎ、作業の再現性を高められます。
Dim pptApp As Object
Set pptApp = CreateObject("PowerPoint.Application")
参照設定を使うときの初心者向け注意点
参照設定は便利ですが、必要以上に追加しないことが重要です。 多すぎると、他のパソコンで開いたときにエラーが出やすくなります。
最初は「どんなことをしたいか」を考え、 それに合った参照設定だけを使うようにしましょう。
分からない参照設定は無理に触らず、 役割を一つずつ理解することが、トラブル回避の近道です。
参照設定を理解するとVBAが怖くなくなる
Excel VBAで難しく感じやすい原因の一つが参照設定です。 しかし、仕組みが分かると「ただの準備作業」だと気づけます。
参照設定はVBAに力を与える存在です。 正しく使えば、Excelは単なる表計算ソフトではなく、 強力な業務自動化ツールになります。
まずは代表的な参照設定の役割を知り、 必要な場面で落ち着いて使えるようになることを目指しましょう。
まとめ
今回の記事では、Excel VBAの可能性を飛躍的に広げる「参照設定」について詳しく解説してきました。参照設定とは、いわばVBAという職人に「新しい専門道具」を渡すような作業です。標準の状態ではExcelの操作しかできない職人も、適切な設定を行うことで、ファイル操作のスペシャリストや、メール送信の達人、さらにはスライド作成のプロへと進化させることができます。
各参照設定のポイントをおさらい
今回ご紹介した4つの主要な参照設定は、実務において非常に頻繁に登場します。それぞれの特徴をしっかり掴んでおきましょう。
- Microsoft Scripting Runtime:ファイルやフォルダの操作、連想配列(Dictionary)を使用する際に必須です。Windowsの基本操作をVBAで行うための土台となります。
- Microsoft ActiveX Data Objects (ADODB):データベースやCSV、外部ブックとの高速な連携を可能にします。大量のデータを扱う際、メモリ効率を考えた処理には欠かせません。
- Microsoft Outlook Object Library:メール作成から送信、予定表の取得まで、日常的なコミュニケーション業務を自動化します。
- Microsoft PowerPoint Object Library:Excelで集計したデータを基に、プレゼンテーション資料をゼロから生成したり、グラフを貼り付けたりする作業を自動化します。
実践的なコード例:複数の道具を組み合わせる
実際の現場では、これらを単体で使うだけでなく、組み合わせて使うことで真価を発揮します。例えば、「フォルダ内のファイルをリストアップし(Scripting)、その情報をメールで送る(Outlook)」といった一連の流れも、参照設定があればスムーズに記述できます。
' 参照設定:Microsoft Scripting Runtime と Microsoft Outlook Object Library を利用した例
Sub SendFileListByEmail()
Dim fso As Scripting.FileSystemObject
Dim folder As Scripting.folder
Dim file As Scripting.file
Dim mailApp As Outlook.Application
Dim mailItem As Outlook.MailItem
Dim fileNames As String
' ファイルシステムオブジェクトの生成
Set fso = New Scripting.FileSystemObject
' 指定したフォルダ内のファイル名を取得
Set folder = fso.GetFolder("C:\Temp")
For Each file In folder.Files
fileNames = fileNames & file.Name & vbCrLf
Next file
' Outlookの起動とメール作成
Set mailApp = New Outlook.Application
Set mailItem = mailApp.CreateItem(olMailItem)
With mailItem
.To = "example@test.com"
.Subject = "ファイル一覧のお知らせ"
.Body = "指定フォルダ内のファイル一覧です:" & vbCrLf & fileNames
.Display '送信前に確認
End With
' 後片付け
Set fso = Nothing
Set mailApp = Nothing
End Sub
上記のように、事前バインディング(Newキーワードを使った宣言)を行うには、VBEの「ツール」→「参照設定」から該当するライブラリにチェックを入れる必要があります。これにより、入力補完(インテリセンス)が効くようになり、開発効率が劇的に向上します。
Office Scriptsとの違いについても触れておきましょう
最近では、クラウド版Excelで動作する「Office Scripts」を活用する場面も増えています。VBAの参照設定はデスクトップアプリ限定の機能ですが、Office Scripts(TypeScript)では、ライブラリの読み込み方が異なります。参考までに、同様のロジックを意識したOffice Scriptsの書き方も見てみましょう。
function main(workbook: ExcelScript.Workbook) {
// Office Scriptsでは、Excel内部の操作に特化しており、
// ローカルファイルの操作やOutlookの直接操作は
// 通常Power Automateを経由して行います。
let sheet = workbook.getActiveWorksheet();
let range = sheet.getRange("A1");
range.setValue("VBAの参照設定と同様に、機能拡張を意識しましょう");
}
VBAの参照設定をマスターすることは、プログラミングの「外部連携」という概念を理解する第一歩です。最初はエラーが出ることもあるかもしれませんが、一つ一つのライブラリが何を提供してくれるのかを意識することで、あなたのコードはより力強く、柔軟なものに変わっていくはずです。
生徒
「先生、参照設定の使い分けがかなりクリアになりました!特に『事前バインディング』を使うと、コードを書いている途中にヒントが出るのがすごく助かりますね。」
先生
「その通りです。インテリセンスが効くのは大きなメリットですね。ただ、マクロを他の人に配布するときは、相手のパソコンに同じバージョンのソフトが入っているか注意が必要ですよ。」
生徒
「あ、そうか。自分のパソコンで動いても、相手のOfficeが古いバージョンだとエラーになっちゃう可能性があるんですね。その場合は『実行時バインディング』を検討すればいいんですか?」
先生
「よく覚えていますね!開発中は参照設定をつけて楽をして、配布時にCreateObjectを使う形に書き換えるのも一つのテクニックです。Scripting Runtimeなんかは、OS標準の機能なので比較的トラブルは少ないですけどね。」
生徒
「なるほど。まずはScripting Runtimeでファイル操作に慣れて、それからADODBでデータベース連携にも挑戦してみようと思います。大量のデータを扱う実務が多いので、きっと役立つはずです!」
先生
「その意気です!ADODBを使えば、Excelのセルを1つずつループで回すよりもずっと早く処理が終わることもあります。参照設定を使いこなして、ワンランク上の自動化を目指してくださいね。」
生徒
「はい、頑張ります!今日もありがとうございました!」