ここから本文です

ExcelからOutlookへの一括アドレス登録について。前任者(社外)から引き継いだExcel...

アバター

ID非公開さん

2019/1/701:04:06

ExcelからOutlookへの一括アドレス登録について。前任者(社外)から引き継いだExcelで作られた顧客データがあるのですが、そのデータの中の顧客名、アドレス等をOutlookへ一括で登録したいんです。Excelは、ただ横に

顧客名、担当者、住所、電話番号…みたいな感じで簡単に表にしてあるだけのものです。検索したところ、Excelをcsvにして…とあったのですが、csv変換から意味がわからずつまづいてます。噛み砕いて、簡単に手順を説明していただけないでしょうか?バージョンは2016です。

閲覧数:
62
回答数:
2
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

アバター

ID非公開さん

2019/1/701:17:59

>Excelをcsvにして…とあったのですが、csv変換から意味がわからずつまづいてます。
ファイルを保存するときに、「ファイル形式」を「CSVファイル」にして保存するだけですよ。

ファイルを保存するときに「ファイル形式を指定して保存」を選んで下さい。

ベストアンサー以外の回答

1〜1件/1件中

Prometheusさん

2019/1/713:16:00

「VBScript」による解凍ですので、「Windows限定」です。

このプログラムは、名簿入ったブックをプログラムファイルにドラッグ&ドロップするだけです。

今は、詳しく分からないので、列「A=顧客名」、列「B=担当者」、列「C=住所」、列「D=電話番号」、列「E=メールアドレス」という想定です。

★★★注意事項★★★
ドラッグ&ドロップする前に、アウトルックもすべてのエクセルも終了しておいてください。

起動していると、エラーが出る恐れがあります。

最期に、「Finished!」と表示されますので、それが出るまで、アウトルックとエクセルは、絶対にいらわないでください。

なお、今は、「担当者」の項目が「アドレス帳」になかったので、あくまでも「サンプル」ということで、「勤務先」に入れています。

以下のプログラムを、メモ帳かテキストエディタに貼り付け、「~.vbs」という名前で保存します。

「~」の部分は、何でもかまいませんが、「.vbs」の部分は、必ず、半角です。

できたプログラムファイル(「~.vbs」ファイル)に、これから「アドレス帳」に登録したいデータが入っているエクセルブック(拡張子が「xlsx」のもの)を、1つだけドラッグ&ドロップするだけです。

Option Explicit
Dim bk, ex, i, im, mf, ns, ol, sh, so, wa
Set so = CreateObject("Scripting.FileSystemObject")
Set wa = WScript.Arguments
If wa.Count <> 1 or LCase(so.GetExtensionName(wa(0))) <> "xlsx" Then
MSgBox("ドラッグ&ドロップできるのは、xlsxファイル1つだけです")
WScript.Quit
End If
Set ex = CreateObject("Excel.Application")
ex.Application.DisplayAlerts = False
ex.Visible = False
Set bk = ex.Workbooks.Open(wa(0))
Set sh = bk.ActiveSheet
Set ol = CreateObject("Outlook.Application")
Set ns = ol.GetNamespace("MAPI")
Set mf = ns.GetDefaultFolder(10)
For i = 2 to sh.Cells(sh.Rows.Count, "A").End(-4162).Row
Set im = ol.CreateItem(2)
im.FirstName = sh.Cells(i, "A").Value
im.CompanyName = sh.Cells(i, "B").Value
im.BusinessAddress = sh.Cells(i, "C").Value
im.BusinessTelephoneNumber = sh.Cells(i, "D").Value
im.Email1Address = sh.Cells(i, "E").Value
im.Save
Set im = Nothing
Next
bk.Close
ex.Quit
ol.Quit
Set sh = Nothing
Set bk = Nothing
Set ex = Nothing
Set ol = Nothing
Set wa = Nothing
Set so = Nothing
MsgBox("Finished!")

私もよく分かっていないので、説明はちゃんと出来ませんが、

http://www.ken3.org/cgi-bin/group/vba_outlook_Contact.asp



https://qiita.com/Q11Q/items/c5ae5cbc1744905f3288

を参照して作成しました。

この下の方のサイトにある「表」で項目が分かります。

今、私のプログラムで「im.~」としていますが、この「~」に当たる部分です。

もし、「誕生日」に書き込みたかったら、

im.Birthday = sh.Cells(i, "~").Value

となるわけです。

この要領だけ理解して頂ければ、あとは、実際のデータと「アドレス帳」の項目とを照らし合わせて作成してください。

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる