皆さん、こんにちは!今日は、OutlookのVBAを使って、会社のグローバルアドレス帳から特定の情報を検索する方法をご紹介します。パソコンやスマホがちょっと苦手な方でも大丈夫。ゆっくり一緒に学んでいきましょう。
グローバルアドレス帳とは?
まず、グローバルアドレス帳って何でしょうか?これは、会社や組織内の全てのメールアドレスや連絡先が一覧になっているものです。Outlookでは、このアドレス帳を使って同僚や上司の連絡先を簡単に見つけることができます。
VBAって何?
次に、VBAについてお話しします。VBAは「Visual Basic for Applications」の略で、Microsoftのアプリケーション(例えばExcelやOutlook)を自動化するためのプログラミング言語です。難しそうに聞こえるかもしれませんが、基本を押さえれば便利なツールなんですよ。
Outlook VBAでグローバルアドレス帳を検索する手順
では、具体的にOutlookのVBAを使って、グローバルアドレス帳から特定の役職の人を見つける方法を見ていきましょう。
- Outlookを起動する普段通りにOutlookを開いてください。
- VBAエディタを開くキーボードの「Alt」キーを押しながら「F11」キーを押すと、VBAエディタが開きます。
- 新しいモジュールを作成する上部メニューの「挿入」から「標準モジュール」を選んでください。
- コードを入力する以下のコードをコピーして、先ほど作成したモジュールに貼り付けます。
vbaコード
Sub SearchGlobalAddressList()
Dim olApp As Outlook.Application
Dim olNamespace As Outlook.Namespace
Dim olAddressList As Outlook.AddressList
Dim olEntry As Outlook.AddressEntry
Dim olExUser As Outlook.ExchangeUser
Dim jobTitleToFind As String
Dim found As Boolean
' Outlookアプリケーションを取得
Set olApp = Outlook.Application
Set olNamespace = olApp.GetNamespace("MAPI")
' グローバルアドレス一覧を取得
Set olAddressList = olNamespace.AddressLists("グローバル アドレス一覧")
' 検索したい役職名を指定
jobTitleToFind = "総務課長"
found = False
' アドレスエントリを順番にチェック
For Each olEntry In olAddressList.AddressEntries
' Exchangeユーザーか確認
If olEntry.AddressEntryUserType = olExchangeUserAddressEntry Then
Set olExUser = olEntry.GetExchangeUser
' 役職名が一致するか確認
If Not olExUser Is Nothing Then
If olExUser.JobTitle = jobTitleToFind Then
MsgBox "見つかりました: " & olExUser.Name
found = True
Exit For
End If
End If
End If
Next
If Not found Then
MsgBox "指定した役職の人は見つかりませんでした。"
End If
End Sub
このコードは、グローバルアドレス帳の中から「総務課長」という役職の人を探し出し、見つかったらその人の名前を表示します。
コードのポイント解説
初心者の方にもわかりやすいように、コードの重要な部分を説明します。
- Outlookアプリケーションの取得`Set olApp = Outlook.Application`で、Outlookの操作を開始します。
- グローバルアドレス一覧の取得`Set olAddressList = olNamespace.AddressLists(“グローバル アドレス一覧”)`で、会社の全ての連絡先が入ったアドレス帳を取得します。
- 役職名の指定`jobTitleToFind = “総務課長”`で、探したい役職名を設定します。
- アドレスエントリのチェック`For Each olEntry In olAddressList.AddressEntries`で、アドレス帳の中の一人一人を順番に確認します。
- Exchangeユーザーの確認`If olEntry.AddressEntryUserType = olExchangeUserAddressEntry Then`で、その人がExchangeユーザー(会社のメールシステムを使っている人)かを確認します。
- 役職名の一致確認`If olExUser.JobTitle = jobTitleToFind Then`で、その人の役職が探している役職と一致するかを確認します。
実際に試してみましょう
コードを入力したら、以下の手順で実行してみてください。
- VBAエディタの上部メニューから「実行」→「Sub/UserFormの実行」を選びます。
- 表示されたダイアログで「SearchGlobalAddressList」を選んで「実行」をクリックします。
もし「総務課長」という役職の人が見つかれば、その人の名前が表示されます。見つからなければ、「指定した役職の人は見つかりませんでした。」と表示されます。
今すぐ解決したい!どうしたらいい?
いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」
あなたはこんな経験はありませんか?
✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦
平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。
LINEでメッセージを送れば即時解決!
すでに多くの方が私の公式LINEからお悩みを解決しています。
最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。
誰でも無料で使えますので、安心して使えます。
問題は先のばしにするほど深刻化します。
小さなエラーがデータ消失や重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。
あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。
ぜひ、あなたの悩みを私に解決させてください。
よくある質問や疑問
Q1: コードを実行しても何も起こりません。どうすればいいですか?
A1: まず、Outlookが起動していることを確認してください。また、コード内の`”グローバル アドレス一覧”`という部分が、お使いの環境のアドレス帳の名前と一致しているか確認してください。環境によっては名前が異なる場合があります。
Q2: 特定の役職ではなく、名前で検索することはできますか?
A2: はい、できます。コード内の`olExUser.JobTitle`を`olExUser.Name`に変更し、`jobTitleToFind`に探したい名前を設定してください。
コメント