プロが教えるわが家の防犯対策術!

困っています。。。

業務において、諸々の連絡をメールで行ない、
その情報をExcel上で管理しているのですが、
事業拡大に伴い、メールの件数が尋常でないものとなり、
Excelでの管理作業が全く追いついていません。

例えば、
受信したメールの件名や本文、受信時間等を
自動的にExcel上に反映させていく、といったことは可能なのでしょうか?
それともソフトウェアを開発しないと難しいものなのでしょうか?
なお、メールはMicrosoft Outlookを利用しています。
初心者が1からの構築を行なっている為、見当もつきません。
可能か、不可能か、そういったことだけでもお教え頂けますと有難いです。

A 回答 (6件)

>受信したメールの件名や本文、受信時間等を自動的にExcel上に反映させていく


これ自体が、必要なのか良くわかりません。
検索や並び替えなどでしたら、エクセルに反映させなくても、受信トレイの機能で十分に可能です。
1、受信メールの仕訳の機能ご存知ですか?
  「ツール」「仕訳」のウイザードで、
  送信者、或いは件名に含まれる文字で、受信メールを保存するトレイを仕訳できます。
  社内ルールで、内容により件名など統一すると、受信のトレイがすっきり出来ます。社内で検討してみてください。
2、送信者がエクセルで作成した内容を、わざわざ、メールの形式に貼り付けている場合などは、添付ファイルにします。そのファイルも統一しておきます。
3、ある程度、業務が定型化したら、この添付ファイルの名前の場合は、保存するとか、開くとかOltLookのVBAで指定します。
  送られてくるエクセルのファイルには、必要なデータ部分を、集計のエクセルファイルにコピィするようなVBAを組み込んでおくなどで、
業務の自動化をはかります。

  
    • good
    • 5

No.2、No.3の方はOutlookのVBAといわれていますが、ExcelのVBAで考えた方がいいと思いますよ。


No.3の方のいうように、世の中にある情報量が全然ちがいます。
Excelならば入門書もたくさんあります。

要は、どちらでもできるはず。OutlookからはExcelを操作できるし、ExcelからはOutlookを操作できるからです。

メールを受信したタイミングでリアルタイムで、というならOutlookのVBAの方がやりやすいと思いますが、1日1回エクセルを起動してそのタイミングで反映、とかでいいなら、Excelで十分です。
    • good
    • 8

こんにちは。



>メールはMicrosoft Outlookを利用しています。

以下は、以前、私が作ったもので、Outlook 2003 でも動きます。
ただし、以下のように、VBE画面で、ツール-参照設定で、Microsoft Outlook にチェックをしていただくことと、セキュリティチェックがありますから、

 アクセスを許可する時間□ 

と途中でダイアログが出てきます。から、チェックを入れて、[はい]をクリックしてください。なお、一旦、取得したものは、既読になりますので、それは、次は除外されてしまいます。

>受信したメールの件名や本文、受信時間等
ではなく、

送信者    タイトル   送信日

となります。本文は、無理に近いです。また、(プロバイダの)受信時間というのは、必ずしも、正しい時間ではありません。

'標準モジュール
'----------------------------------------------------
Sub OutlookListup()
'Excel 用 Outlook のタイトル出力
'要参照設定:Microsoft Outlook xx Object Library
'Outlook のセキュリティが働いたら、はい(Y)を押す
Dim myOL As Outlook.Application
Dim myNamespace As Outlook.Namespace
Dim myFolder As MAPIFolder
Dim ml As MailItem, i As Long
Dim y As Long, m As Long, d As Long
'
On Error GoTo ErrHandler
Set myOL = New Outlook.Application
Set myNamespace = myOL.GetNamespace("MAPI")
Set myFolder = myNamespace.GetDefaultFolder(olFolderInbox)
'タイトル行を出力
 Range("A1").Resize(, 3).Value = Array("送信者", "タイトル", "送信日")
For i = 1 To myFolder.Items.Count
With myFolder.Items(i)
  If .UnRead = False Then  '未読のフラグ
  Cells(i + 1, 1).Value = .SentOnBehalfOfName
  Cells(i + 1, 2).Value = .Subject
  '.CreationTime をそのまま取れないことがある
  y = Year(.CreationTime)
  m = Month(.CreationTime)
  d = Day(.CreationTime)
  Cells(i + 1, 3).Value = y & "/" & m & "/" & d
  End If
End With
Next i
 Range("A1").Resize(, 3).EntireColumn.AutoFit
 On Error GoTo 0
ErrHandler:
 If Err.Number > 0 Then
  MsgBox Err.Description
 End If
 Set myFolder = Nothing
 Set myNamespace = Nothing
 Set myOL = Nothing
 Beep
End Sub
'----------------------------------------------------
    • good
    • 4

Outlook(VBAが無いOEではさらにむつかしいと思う)のVBAで、メイルを受信したというイベント(VB用語)はあると思うので、それを利用して受信内容を捉え、エクセルのシートのセルに書けばよいが、エクセルのVBAも質問者は経験なさそうなので、ダブル学習になります。

Outlookの解説書は大型書店でも見た記憶に無いぐらい出版されて無いので、学習が大変でMSの解説や英文の解説を読んで理解して、自分のケースに合わしてプログラムを作っていかなくてはならないように思う。
このOKWAVEなどに質問しても、回答は付かないかもしれない。6年ぐらいこのカテの質問を見ているが、OutlookのVBAの質問は数個しかないかでは無いかな。
ーー
だだし世の中ひろいですね。
「OUTLOOK VBA」でWEB照会すると、相当数の記事が出てくるようだ。エクセル・アクセスVBAやプログラム経験者は、ヘルプなどを利用して、ある程度はそれらでOUTLOOKも判るのかもしれない。
ーーー
まあOUTLOOK、エクセルを利用が前提に持っていくのでなく、プロの世界の仕事と思いますが。
    • good
    • 3

OUTLOOKのVBAを利用してエクセルにデータを記述する方法はあると思います。

    • good
    • 7

可能か不可能か、といわれれば間違いなく可能ですが、私もやったことがないので、具体的な方法までは、すぐにはわかりません。



一番てっとり早い方法は、エクセルVBAを使うことだと思います。

Excel, VBA, Outlook などのキーワードで検索してみてはいかがでしょうか。参考になりそうな情報はいろいろありそうです。

参考URL:http://www.google.co.jp/hws/search?hl=ja&q=outlo …
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています