【無料配信♪】Renta !全タテコミ作品第1話

困っています。。。

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

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

このQ&Aに関連する最新のQ&A

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
    • 3

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に関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QOutLook本文を、VBAでExcelに落としたい

こんにちは。
先日、こちらのサイトのVisualBasicのカテゴリで質問したのですが、
1件アドバイスが入ったのに、表示されず、削除も出来ず
困ってしまったので、もう一度質問させていただきます。

タイトルの通りなのですが、
ExcelVBAで、OutLookの受信トレイの「未読」の件名、本文、受信時間を
Excelに一覧として落としたいのです。

いろいろサイトを見たりして、参考サイトで見つけたコードを
使って、思うとおりにカスタマイズしてもみたのですが、
どうしても思っていた通りには出来ませんでした。
上記やりたいことが出来るコード、参考サイトをご教示願えませんか?
ちなみに、OSはWindows2002です。

どうぞよろしくお願い致します。

Aベストアンサー

#1 です。

こちらとしては、どなたが解決してもかまいませんので、ずるいようですが、#2,#3 で書かれているname_mm_ok 様のコードで様子を見させていただきます。

なお、
>セキュリティ関連のダイアログが開き、アクセス可能な時間を選択
>する必要がある事です。
>この件に関しては、私のレベルでは回避不可能でした。

Faq ですが、一応、セキュリティレベルなので、Outlook では、解決は出来ないというのが、一般的な回答です。他は知りません。

なお、
.UnRead = True
で、私の回答は、逆に書いてしまいました。間違えました。

Qthunderbirdでメールをエクセルにエクスポートする方法

タイトル通りなんですが、thuderbirdのメールをエクセルにエクスポートする方法はありますでしょうか?

どうかよろしくお願いいたします。

Aベストアンサー

Thunderbirdには、便利な拡張機能がありますから、変なツールは不要です。

以前にも同様な質問にお答えしていますが、次のImport Export Tools(既にVer3.0テスト版やThunderbirdベースのメーラーPostboxにも対応、旧名:Mbox Import)を導入したら、各トレイのメールデータのバックアップや復元、今回希望されるCSVファイル(目次のみを含む)の作成などが可能になります。
http://mozilla-remix.seesaa.net/article/28838742.html

導入後に、並べたい順に表示したトレイ上で右クリック→「取り込み・書き出し」→「フォルダにあるすべてのメッセージを書き出す」の下に、次の項目を含むメニューが出ます。
○プレーンテキスト(1つのファイル)
○目次のみ(HTML)
○目次のみ(CSV)

3つ目のCSVはエンコードの関係か、文字化けが起こり、ちょっと使えないですが、

HTMLファイルへのエクスポート(自動的にフォルダの中に)が正常にできますから、デスクトップを選択してエクスポート(罫線付き)し、これを開いて、編集→「すべて選択」してコピーを実行した後に、開いた新規のExcelファイルのA1のセル上で右クリック→「貼り付けて」から、セルの高さや幅を調整(後でもよいですね)したら完成です。

なお、メール一覧の項目は、送信者、宛先、件名、送信日時になります。
日常的にも使える大変便利な拡張機能なので、本体の機能に入れて欲しいといつも思っていますので、試してみてください。

Thunderbirdには、便利な拡張機能がありますから、変なツールは不要です。

以前にも同様な質問にお答えしていますが、次のImport Export Tools(既にVer3.0テスト版やThunderbirdベースのメーラーPostboxにも対応、旧名:Mbox Import)を導入したら、各トレイのメールデータのバックアップや復元、今回希望されるCSVファイル(目次のみを含む)の作成などが可能になります。
http://mozilla-remix.seesaa.net/article/28838742.html

導入後に、並べたい順に表示したトレイ上で右クリック→「取り込み・書き出し...続きを読む

QThunderbirdのメールをCSVでまとめたい

Thunderbird17.0.2を使用しています。
このソフト内にある指定した複数のメールデータをエクセル(.xls)やCSV(.csv)等で1つのファイルにまとめたいのですが、何か方法はないでしょうか。

ソフト内にあるたくさんのメールのうち、エクスポートしたいデータはテキストファイルで、本文の形式も決まっています。
その特定の複数メールを1枚のCSVで、たとえば横列に1件のメール本文を改行ごとにセルを分けて整理したいのです
(横1列が1件のメール1件なので、横行の数=メール件数になり、縦のアルファベット行の数だけ改行数になります)

方法ご存知の方是非教えてください
よろしくお願いします

Aベストアンサー

次のアドオンのImport Export Toolsを入れてみてください。
https://addons.mozilla.org/ja/thunderbird/addon/importexporttools/

追加すると、mboxファイルやemlファイルのエクスポート・インポートなどの通常の利用方法のほか、色々なメニューが追加されて、HTMLファイル、csvファイル、textファイルなどにトレイ単位のメールを出力できるようになります。

メニューは、対象トレイの右クリックやツールメニューの「Import Export Tools」から扱えます。

なお、csvのスプレッドファイルは、文字コードがUTF-8で出力されるので、出力されたファイルをメモ帳で開いて、ANSIに変更して上書きする必要があったと思います。

Qメールの内容からEXCELへの変換はできますか?

フリーのcgi(フォームメール)の機能を設定し、
受信したメールの内容をEXCELで保存するということはできますか?
例えば、名前・住所・電話番号という項目が記述されたメールを受信後、そのメールにある項目を
EXCELで住所録のようにデータ管理のようなことはできるんでしょうか?
方法がありましたら教えてください。
WindowsXP、Outlook Express(ver6.0)、EXCEL2002です。

Aベストアンサー

現在ご利用のメールフォームCGIの仕様が分からないので、詳しいコメントはできません。
仕組みだけですが、説明します。多分、お役に立つと思います。

1. 現在ご利用のメールフォームCGIのソースを確認し、氏名など添付ファイルとして送りたい項目をピックアップして下さい。例えば、フォームから入力された内容が、$in{'name'}の様な変数に代入されて、メール送信用にフォーマット化され、Sendmailを利用してメールを送信する。と言う形式になっていると思うので、送りたい内容が入っている変数名を探してください。メール送信用にフォーマット化している部分を見つけて、そこを読むと、比較的簡単に見つかると思います。)

2. その情報を元に、添付ファイルにするための、CSVファイルを作るルーチンが追加してください。メール送信用にフォーマット化処理の前後に挿入すれば良いでしょう。Perlの場合例えば、

$csvfile="address.csv";
open(CSV, ">$csvfile");
print CSV join(",", $in{'name'}, $in{'zip'}, $in{'address1'}…). "\n";
close(CSV);

の様な処理で良いとおもいます。$in{'name'}, ~ の部分には、各項目名の変数名が入ります。

3. メールを送信する処理に、添付ファイルを作る処理を追加してください。

http://www.stackasterisk.jp/tech/program/perl03_03.jsp

の記事が役に立つと思います。一番最後の例で、実際に添付ファイル付きのメールを作る例が掲載されています。

もし、Sendmail を使用する方法を、Net::SMTPと言うモジュールを使用する方法に変更できれば、Net::SMTP を利用してしまった方が、添付ファイル付きメールの送信は簡単にできます。

http://member.nifty.ne.jp/hippo2000/perltips/perlmail.htm#1.4

4. 送信後に、address.csv を削除する。

unlink $csvfile;

で良いと思います。

手順としてはこんな感じです。改造ができれば、使いやすいフォームメールCGIが手に入ると思います。

現在ご利用のメールフォームCGIの仕様が分からないので、詳しいコメントはできません。
仕組みだけですが、説明します。多分、お役に立つと思います。

1. 現在ご利用のメールフォームCGIのソースを確認し、氏名など添付ファイルとして送りたい項目をピックアップして下さい。例えば、フォームから入力された内容が、$in{'name'}の様な変数に代入されて、メール送信用にフォーマット化され、Sendmailを利用してメールを送信する。と言う形式になっていると思うので、送りたい内容が入っている変数名を探してく...続きを読む

QExel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数ではなく、マクロで処理を希望します。

自分では、部品表の商品番号をコピーして、コード一覧表で検索し、検索結果の右隣のセル(B列のコード)の値を部品表のC列に貼り付ければよいかと思い、書いてみたんですが…

Sub 別ブックから貼り付ける()
  Dim 検索する As Long
Windows("部品表.xls").Activate
検索する = cells(i,2).Value
Windows("コード一覧表.xls").Activate
ActiveWindow.SmallScroll Down:=-3
Selection.AutoFilter Field:=3, Criteria1:="=検索する", Operator:= xlAnd

と、してみたものの、検索しても、その検索結果の隣のセルのコードをどうやって取得すればいいのかが、わかりませんでした。

基本事項は本で学びましたが、呪文のようなコードはよく理解できません。懸命にネットで検索して、訳して理解する努力をしてはいますが。

どうぞよろしくお願いします。

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数...続きを読む

Aベストアンサー

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks.Open("C:\★★\コード一覧表.xls") '★要変更★
 I = 2
 Do While Range("A" & I).Value <> ""
  ThisWorkbook.Worksheets("Sheet1").Range("C" & I).Value = Application.VLookup(ThisWorkbook.Worksheets("Sheet1").Range("B" & I).Value, xlBook.Worksheets("Sheet1").Range("A2:B65535"), 2, 0)
  I = I + 1
 Loop
 xlBook.Close
 Application.ScreenUpdating = True
 MsgBox ("完了")
End Sub

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks....続きを読む

QOutlookで送受信日時もExcelにエクスポートするには

Microsoft Outlookで送受信したデータをExcelにエクスポートするときに、
メールの内容や送受信相手は変換できるのですが、
送受信日時をエクスポートすることがどうしてもできません。

どなたか、この方法が分かる方いらっしゃいませんでしょうか。
もしくは、上記のようなことができるOutlook用ソフトや、
逆に上記のようなことができるメーラーでもかまいませんので、
情報をお待ちしております。

よろしくお願いいたします。

Aベストアンサー

こんにちは!

こういうやり方はどうですか?
普通にExcelへエクスポートした場合、確かに送受信日時
はありません。
送受信日時を移すにはメールの件名だけ表示(開いてない状態)
しているところでそのファイルをExcelにドラッグアンドドロップ
するだけです。

[受信ボックスの中のメールを全てExcelに移す場合]
(1)OutlookのエクスポートでExcelに出力します。
(2)Outlookの受信ボックスのメールを全て選択して
ドラッグアンドドロップで、(1)で移したメールの
横の列に落とします。そうせれば一行に1メール
の情報が全てのせれます。
(3)いらない列を削除します。

他にいいやり方があるかも知れませんが
とりあえず荒技的なやり方もありますので参考に
なさって下さい。

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。

Qエクセル マクロで指定フォルダを開く

エクセルにて
指定フォルダを開く、マクロがあれば教えて頂けないでしょうか。
よろしくお願いいたします。

Aベストアンサー

こんにちは。

こういうものですか?
開くフォルダを変えたいときは targ に与えるパスを変更します。

Sub OpenFolders()
Dim targ As String
targ = "C:\"
Shell "C:\Windows\Explorer.exe " & targ, vbNormalFocus
End Sub

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング