2016-11-18 8 views
0

VBAの基本的な理解があるので、私にご負担ください。VBA Outlookで新しい電子メールを作成するときに件名にプロンプ​​トが表示される

私は現在、2007 Outlookを使用しています。 [A]:、[R] :, [F:]、[!]などの固定ラジオボタンオプションの1つを選択するようにユーザーに促す新しいメールの作成時にアクティブになるコードを取得しようとしています。 ]:、空白(空白を空白にするオプション)。

ユーザーの選択から、その選択が自動的に件名に挿入されます。

1)ユーザーは新しいメールを作成します 2)新しいメールウィンドウが開くと、前述のオプションから選択を求めるプロンプトが表示されます。 3)ユーザーが選択します 4)その選択が件名に表示されます。

私はいくつかのコードをオンラインで見つけましたが、私はそれを私のために働かせることができないようです。

私がThisOutlookSessionモジュールにこのコードを貼り付けコード ます。Private Sub m_colInspectors_NewInspector( Outlook.InspectorとしてByValインスペクタ)

の終わりに向かってでてエラーのようです。

Option Explicit 
Private WithEvents m_colInspectors As Outlook.Inspectors 
Private WithEvents CurrentInspector As Outlook.Inspector 

Private Sub Application_Startup() 
Set m_colInspectors = Application.Inspectors 
End Sub 

Private Sub CurrentInspector_Activate() 
Dim oMail As Outlook.MailItem 
If Len(UserForm1.SelectedSubject) Then 
Set oMail = CurrentInspector.CurrentItem 
oMail.Subject = UserForm1.SelectedSubject 
End If 
Set CurrentInspector = Nothing 
End Sub 

Private Sub m_colInspectors_NewInspector(ByVal Inspector As 
Outlook.Inspector) 
If TypeOf Inspector.CurrentItem Is Outlook.MailItem Then 
If Inspector.CurrentItem.EntryID = vbNullString Then 
UserForm1.SelectedSubject = vbNullString 
UserForm1.Show 
Set CurrentInspector = Inspector 
End If 
End If 
End Sub 

次に、ラジオボタンとコマンドボタンを使用してフォームを作成し、次のコードを挿入しました。

Option Explicit 
Public SelectedSubject As String 

Private Sub CommandButton1_Click() 
If OptionButton1.Value = True Then 
SelectedSubject = "Test" 
End If 
Hide 
End Sub 

スクリプトを動作させるのに役立つ助けをいただければ幸いです。

ありがとうございました。

+0

私はOutlook-VBAをあなたのタグとして追加しました。あなたの質問にExcelの言及はありませんので、削除する必要があります。 –

答えて

0

これは、あなたが欲しいと思うかもしれません。 ThisOutlookSessionの下に置く。ユーザがSendsをクリックすると、これがトリガされます。つまり、送信前に件名を変更することはできません。私はUserForm1とそのコードを使用しています。あなたが好きなだけ多くのラジオボタンを追加し、ちょうどOptionButton12と値に修正してください。

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) 
Dim strSubject As String 
Dim Prompt$ 

    strSubject = Item.Subject 
    ' Show RadioButtons 
    UserForm1.Show 
    ' Set Subject Line as the value from the selected RadioButton 
    strSubject = UserForm1.SelectedSubject 

    ' Set the message subject 
    Item.Subject = strSubject 
    strSubject = Item.Subject 

    ' Test if Subject Line is empty 
    If Len(Trim(strSubject)) = 0 Then 
     Prompt$ = "Subject is Empty. Are you sure you want to send the Mail?" 
     If MsgBox(Prompt$, vbYesNo + vbQuestion + vbMsgBoxSetForeground, "Check for Subject") = vbNo Then 
      Cancel = True 
     End If 
    End If 
End Sub 
+0

Niclasに感謝します。 私は指示通りにコードを落としてフォームをプロンプトしましたが、送信する前に選択したオプションを件名に貼り付けません。件名は同じです。 私のフォームに問題があるとは思いますが、私はまだVBAを学んでいて、オプションボタンに割り当てられた値を添付していない可能性があります。あなたは自分のフォームを解剖して、私が間違っていることを見るのを助けることができますか? – Tech

+0

それは私のために働いたが、私は上記のコードにあるものと比較して、あなたのuserformの命名に問題があるのは間違いないと思う。それであなたのフォームが表示され、選択を行うことができますか?あなたはまだ 'SelectedSubject'を使っていますか? – Niclas

関連する問題