投票ボタン付きのメールを送信した場合、受信者からの返信が届いた後、投票統計を集計してExcelシートにエクスポートしたいと思うかもしれません。そこで、この記事では、それを迅速に行う方法をご紹介します。
Outlookは非常に強力なので、「投票」機能も提供します。 私の以前の記事「投票のためのMSOutlookの巧みな使用」では、それを効果的に活用する方法を教えています。また、ほとんどの場合、投票後、統計を印刷したいなどの理由で、投票統計を Excel ワークシートにエクスポートすることになります。しかし、Outlook はデフォルトではこれをサポートしていません。そこで、以下では、これをコルクのように実現する方法を教えます。

電子メールの投票統計をExcelワークシートにエクスポートする
- 最初に、Outlookアプリケーションを起動します。
- 次に、Outlookのメインウィンドウで「Alt + F11」キーボタンを押す必要があります。
- 次に、「Microsoft Visual Basic for Applications」ウィンドウで、「Microsoft Excel オブジェクト ライブラリ」を有効にします。「ツール」>「参照」をクリックします。表示されたダイアログボックスで、「Microsoft Excel オブジェクト ライブラリ」の横にあるチェックボックスをオンにし、最後に「OK」をクリックします。
- その後、新しいモジュールを挿入するか、使用されていないモジュールを開くことができます。
- 続いて、次のVBAコードをコピーしてこのモジュールに貼り付けます。
Sub ExportVotingStatistics _Excel ()
Dim objMail As Outlook.MailItem
Dim objRecipient As Outlook.recipient
Dim objVoteDictionary As Object
Dim varVotingCounts As Variant
Dim varVotingOptions As Variant
Dim varVotingOption As Variant
Dim i As Long
Dim objExcelApp As Excel.Application
Dim objExcelWorkbook As Excel.Workbook
Dim objExcelWorksheet As Excel.Worksheet
Dim nRow As Integer
Set objMail = Application.ActiveExplorer.Selection(1)
'Create a new excel worksheet
Set objExcelApp = CreateObject("Excel.Application")
Set objExcelWorkbook = objExcelApp.Workbooks.Add
Set objExcelWorksheet = objExcelWorkbook.Sheets(1)
'Fill in the predefined values
With objExcelWorksheet
.Cells.Font.Name = "Cambria"
.Cells(1, 1) = "Voting Results for Email:"
.Cells(1, 2) = Chr(34) & objMail.Subject & Chr(34)
.Cells(3, 1) = "Voting Options"
.Cells(3, 2) = "Voting Counts"
End With
Set objVoteDictionary = CreateObject("Scripting.Dictionary")
'get the default voting options
varVotingOptions = Split(objMail.VotingOptions, ";")
'Add the voting responses to the dictionary
For Each varVotingOption In varVotingOptions
objVoteDictionary.Add varVotingOption, 0
Next
'Add a custom voting response - "No Reply"
objVoteDictionary.Add "No Reply", 0
'Process the all voting responses
For Each objRecipient In objMail.Recipients
If objRecipient.TrackingStatus = olTrackingReplied Then
If objVoteDictionary.Exists(objRecipient.AutoResponse) Then
objVoteDictionary.Item(objRecipient.AutoResponse) = objVoteDictionary.Item(objRecipient.AutoResponse) + 1
Else
objVoteDictionary.Add objRecipient.AutoResponse, 1
End If
Else
objVoteDictionary.Item("No Reply") = objVoteDictionary.Item("No Reply") + 1
End If
Next
'Get the voting options and vote counts
varVotingOptions = objVoteDictionary.Keys
varVotingCounts = objVoteDictionary.Items
'Fill in the values in specific cells
nRow = 4
For i = LBound(varVotingOptions) To UBound(varVotingOptions)
With objExcelWorksheet
.Cells(nRow, 1) = varVotingOptions(i)
.Cells(nRow, 2) = varVotingCounts(i)
End With
nRow = nRow + 1
Next
'Save the new Excel file
objExcelWorksheet.Columns("A:B").AutoFit
strExcelFile = "E:\Voting Results " & Format(Now, "YYYY-MM-DD hh-mm-ss") & ".xlsx"
objExcelWorkbook.Close True, strExcelFile
MsgBox "Complete!", vbExclamation
End Sub
- その後、便利なアクセスのために、クイックアクセスツールバーに新しいマクロを追加することをお勧めします。
- 最終的には、試してみることができます。
- まず、投票ボタンを含むソースメールを選択します。
- 次に、クイックアクセスツールバーのマクロボタンをクリックします。
- このマクロの実行が終了したら、事前定義されたローカルフォルダーを参照できます。このフォルダーには、新しいExcelブックが表示されます。
- このExcelブックを開きます。 これで、下の画像のように投票統計が表示されます。
Outlookのエラーを完全に回避することはできません
Outlookにはさまざまな機能が備わっていますが、Outlookのエラーを回避するのに役立つ機能はありません。 あらゆる種類の要因がOutlookエラーを引き起こす可能性があります。 たとえば、Outlookを不適切に終了することが多い場合は、問題が発生する可能性があります。 PSTの破損。 このようなシナリオでは、PSTファイルをレスキューするためのいくつかの強力なツールを使用する以外に選択肢はありません。 DataNumen Outlook Repair。 回収率が高く、高い評価を得ています。
著者紹介:
Shirley Zhangは、のデータ復旧の専門家です。 DataNumen、Inc。は、以下を含むデータ復旧技術の世界的リーダーです。 破損したmdf と見通し修理ソフトウェア製品。 詳細については、次のWebサイトをご覧ください。 WWW。datanumen.com

