bugfix> vba > 投稿

すべて、選択したアイテムの値をユーザーフォームからThisOutlookSessionに渡そうとしていますが、文字列を渡すことはできません。どこが間違っているのか考えてくれてありがとう。

アイデアは、txtファイルからの参照のリストをリストボックスに入れて(これはうまく機能します)、ユーザーはリストボックスからアイテムを選択し、そのアイテムは発信の件名の最後に追加されますEメール。 (件名行を修正するコードの部分は、以下から省略されます)。

ThisOutlookSession内:

Public subString As String
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
SubjectAdd.Show
[CODE OMITTED,  but the gist of it is item.subject = item.subject & strstring]
End Sub

SubjectAddユーザーフォーム内:

Private Sub Append_Click()
Dim i As Long
Dim lngCount As Long
  lngCount = 0
  For i = 0 To MatterList.ListCount - 1
    If MatterList.Selected(i) = True Then
      lngCount = lngCount + 1
      If lngCount = 1 Then
        StrPicks = MatterList.List(i)
      Else
        StrPicks = StrPicks & " " & MatterList.List(i)
      End If
    End If
  Next i
subString = StrPicks
Me.Hide
lbl_Exit:
  Exit Sub
End Sub

回答 1 件
  • ザ・ Public  変数は動作するはずです

    代わりに Tag を使用します   UserForm のプロパティ  対象

    Append_Click()   Me.Hide の前に最終行を追加します

    Me.Tag = StrPicks
    
    

    その後、 Application_ItemSend() で 、前に

    Unload SubjectAdd
    
    

    以下を置きます

    subject = item.subject & SubjectAdd.Tag
    
    

あなたの答え