私は簡単に電子メールを送信する方法を探しています。私は顧客番号と注文番号で毎日約20行を追加するExcelファイルを持っています。また、Eメールアドレス、国によって異なる科目や団体もあります。 私はLotus Notesを使用し、すべてのコードを送信してファイルを添付するよう設定しておきます。電子メールを送信するためのマクロは、アクティブなセルのオフセットを使用します。だから、現在、私は特定のセルをクリックし、電子メールを送信するキーバインドを押しています。ハイパーリンクまたはアクティブセルオフセットのマクロを実行するボタン
ただし、人々がハイパーリンクや各行のボタンをクリックしてメールを作成できるように変更したいと考えています。フォームとActiveXコントロールのボタンを使って試しましたが、これでファイルが遅すぎます。
次に、ハイパーリンクをクリックすると、マクロをアクティブにする方法を調べました。
これはインターネット上で見つかりました。
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Select Case Target.Range.Address
Case "$B$3"
Call myMacro
Case Else
End Select
End Sub
ただし、これはセルB3のリンクでのみ機能します。 B列のリンクをクリックするとマクロが実行されるようにするにはどうすればよいですか?
他にも解決策があるかどうかご連絡ください。
敬具、
EDIT1:
これは、列Bに何かがクリックされたときに実行するマクロを取得するには、電子メール用のコード
Sub myMacro(Target As Range)
'Send an e-mail & attachment using Lotus Not(s)
'Original Code by Nate Oliver (NateO)
'Declare Variables for file and macro setup
Dim UserName As String, MailDbName As String, Recipient As String, ccRecipient As String, Attachment1 As String
Dim Maildb As Object, MailDoc As Object, AttachME As Object, Session As Object
Dim EmbedObj1 As Object
With Application
.ScreenUpdating = False
.DisplayAlerts = False
' Open and locate current LOTUS NOTES User
Set Session = CreateObject("Notes.NotesSession")
UserName = Session.UserName
MailDbName = _
Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
Set Maildb = Session.GETDATABASE("", MailDbName)
If Maildb.IsOpen = True Then
Else
Maildb.OPENMAIL
End If
Set MailDoc = Maildb.CreateDocument
MailDoc.Form = "Memo"
Recipient = Target.Offset(0, 1).Value
MailDoc.SendTo = Recipient
ccRecipient = Target.Offset(0, 2).Value
MailDoc.CopyTo = ccRecipient
MailDoc.Subject = Target.Offset(0, 3).Value
MailDoc.Body = Target.Offset(0, 4).Value
Dim Orderno
Dim myPath
Dim myFile
Orderno = Target.Offset(0, 5).Value
myPath = ThisWorkbook.Path & "D:\Berry\Order Confirmations\VBAtest\"
myFile = Dir(myPath & "*" & Orderno & "*.pdf*")
Attachment1 = (myPath & myFile)
MsgBox (Attachment1)
If Attachment1 <> "" Then
On Error Resume Next
Set AttachME = MailDoc.CREATERICHTEXTITEM("attachment1")
Set EmbedObj1 = AttachME.embedobject(1454, "attachment1", (myPath & myFile), "")
On Error Resume Next
End If
Set workspace = CreateObject("Notes.NotesUIWorkspace")
Call workspace.EDITDOCUMENT(True, MailDoc).GOTOFIELD("Body")
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set Session = Nothing
Set EmbedObj1 = Nothing
.ScreenUpdating = True
.DisplayAlerts = True
End With
errorhandler1:
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set Session = Nothing
Set EmbedObj1 = Nothing
だけの観測質問:あなたは次のことを行うことができ、あなたのマクロで次に
:あなたのような引数OT yourmacro何かを渡すためにあったかのように、ターゲットは、正しい値を取得するだろうExcelアプリケーションをNotesアプリケーションに変換することは可能ですか?返信は必要ありません。 –