私は、Outlook VBAで
[メールの作成 や 読み込みを行いたい]
/ [予定 アポやスケジュールを管理したい]
/ [仕事・タスクを登録したい]
/ [アドレス帳や連絡先を管理したい]
/ [HELPからOutlookのプロパティやメソッドを探りたい]
です。※目的の処理を選択してください。
ken3memo : Outlook関係の→
[メモ・記事をチェック] /
[ブックマークを見る] /
[アウトルックの動画解説へ]
全ての質問には、答えられませんが、リクエストや質問があったら、[作者(三流君)に質問する] から 気軽に送ってください
[三流君(TOP)] / [VBA(TOP)] / [Outlook操作(TOP)]
三流君 Outlook Contact 連絡先・アドレス帳を操作する
まぁ、そんなに難しく考えないで、ソースを貼り付けて、遊んでみてください。
VBS や Excel など から Set oApp = CreateObject("Outlook.Application") で オブジェクトを作り、コントロールしてます。
#ContactItem
As ContactItem
ContactItem オブジェクト
連絡先アイテム プロパティ
↑MSDNを参考にして、プロパティやメソッドを探ったり、
[連絡先の作成へ]
#CreateItem
連絡先・アドレス帳の作成
連絡先・アドレスのアイテムを作成したいと思います。
と言っても、単純に、
CreateObject("Outlook.Application") で アウトルック起動
.GetDefaultFolder(10) '規定のフォルダー olFolderContacts=10 指定
.CreateItem(2) 'olContactItem=2 2連絡先を指定
して、作成後、
プロパティに値をセット、
動作 .Close メソッドで保存して閉じただけです。
'VBSからOutlook 連絡先に1つアイテムを作成する
'入力された名前とアドレスで連絡先のアイテムを1つ作成する
'テストデータをInputBoxで手入力
Dim strNAME '名前の姓
Dim strYOMI 'フリガナ
Dim strEMAIL 'メールアドレス
strNAME = InputBox("お名前 姓は") '入力させる
strYOMI = InputBox("読み方、フリガナは?") '入力させる
strEMAIL = InputBox("メールアドレスは?", "test@test.test") '入力させる
'Outlook.Applicationの起動
Dim oApp 'As Outlook.Application OutlookのApplication オブジェクトを入れる
Dim myNameSpace 'As Outlook.NameSpace 名前のスペースと言われても、、
Dim myFolder 'As Outlook.Folder フォルダー指定
'outlook 起動をCreateObjectで ※これだと複数起動してしまうがご勘弁を
Set oApp = CreateObject("Outlook.Application")
'呪文1 名前空間 の 指定 と言っても、.GetNamespace("MAPI")しただけ
Set myNameSpace = oApp.GetNamespace("MAPI")
'olFolderContacts 10 連絡先フォルダ
'次は作業フォルダーの指定(.GetDefaultFolder) と 表示(.Display)
Set myFolder = myNameSpace.GetDefaultFolder(10) '規定のフォルダー olFolderContacts=10 指定
myFolder.Display '表示 いつものクセで .Visible = True とやりがちだけど
'通常サイズ olNormalWindow=2 で表示(ほかに olMaximized=0,olMinimized=1)
oApp.ActiveWindow.WindowState = 2 'olNormalWindow=2 を セット
'ここから連絡先の作成
'As Outlook.ContactItem 連絡先のアイテム を 作成する
'CreateItem(2) とolContactItem=2 2を指定しただけ。
Dim cITEM 'As Outlook.ContactItem '連絡先アイテム
'CreateItemで連絡先の作成
Set cITEM = oApp.CreateItem(2) 'olContactItem=2 2連絡先を指定
cITEM.Display '編集画面表示
'データのセット
cITEM.Email1Address = strEMAIL 'メールアドレス1
cITEM.YomiCompanyName = "カブシキガイシャ アイウエオ"
cITEM.CompanyName = "株式会社アイウエオ"
cITEM.YomiLastName = strYOMI 'フリガナをセット
cITEM.LastName = strNAME '姓をセット
'cITEM.YomiFirstName '名前のフリガナ
'cITEM.FirstName '名
'↑他にも 値、プロパティがあるけど、テストで表示
'動作
'cITEM.Save '.Saveで保存 .Close時に下記みたいに閉じると同時に保存も可能
cITEM.Close 0 '保存して閉じる olSave=0 olDiscard=1 olPromptForSave=2
|
↑を実行すると、連絡先・アドレスのアイテムが作成されるので、テストしてみてください。
操作・試行錯誤の動画:[テスト動画]Outlook CreateItem(2) olContactItem=2 連絡先のアイテムを作成
連絡先の更新と検索
フォルダーからアイテムを検索するには、
モロ DB処理に似ていて(フィルター処理に似ているかなぁ)
Set oITEM = oFolder.Items.Find("[項目] = '値'")
で探すことができそうです。
検索されたか?データ取得の確認は、
If Not oITEM Is Nothing Then 'オブジェクトの中身が入ってれば
でチェックすることができます。
複数ヒットする可能性がある時は、Items.FindNext あたりが使えそうです。
操作・試行錯誤の動画:Outlook VBA 連絡先 更新方法 と アドレスでITEMを検索する方法
コードは↓
[XXXXXさんへ Outlook VBA 連絡先 更新方法 と アドレスでITEMを検索する方法]
↑を見てください。
サンプルコードのリンク
連絡先のサンプル:
[Outlook VBA で 連絡先 配布リスト.msg を取り込む やりかけ その2]
[Outlook VBA 選択された連絡先の氏名+フリガナを使い、仕事を作成]
仕事・タスクアイテム と 予定表・連絡先などを連携?
[予定表と仕事、連絡先を使ったサンプル]
では、
Application.ActiveInspector.CurrentItem
を使い、開いているアイテムを取得してみたり、
また、
複数選択された連絡先(ContactItem)を取得したかった時は
Application.ActiveExplorer.Selection を 使い、
[Outlook VBA 選択された連絡先の氏名+フリガナを使い、仕事を作成]
したりしました。
意外と、Outlookは奥が深いですね。
[#QA_MESSAGE][ページ内のTOPへ戻る]
ページフッター
ここまで、読んでいただきどうもです。ここから下は、広告と三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、
Outlook VBA 情報を Googleで検索する
三流君へ メッセージを送る
感想や質問・要望・苦情など 三流君へメッセージを送る。
急ぎで連絡がほしい、そんな時は:[twitter三流君]に気軽に連絡してください。
Outlook アイテム別の操作
- [Mail]でメールを作成したり読み込んだり
- [Task]で仕事・タスクを登録したり
- [Appointment]予定表 アポ・スケジュールの登録ほか
- [Contact]連絡先でアドレスや名簿管理
三流君の[Outlookヘルプの探り方]でオブジェクト、プロパティやメソッドの探り方を少し書いてみたり、
ken3memo : Outlook関係の→
[メモ・記事をチェック] /
[ブックマークを見る] /
[アウトルックの動画解説へ]
で、まとめてみたり※↑まとまってないじゃん、放り込んだだけでしょ・・・
Menu :
[Outlook操作(TOP)] /
[VBA(TOP)] /
[三流君(TOP)]