お世話になっております。
Microsoft Outlook2003使用で
メール送信のマクロを見様見真似で作ってみたのですが、本文部分がうまくいきません(Best regardsしか表示されません)。
どうすれば正しく反映されるでしょうか?
シートのB1にToアドレスを記入していてTo_addressと名前付
以下、Cc_addressとSubjectも同様にしています。
本文の文章は何行かあり、途中で空白行も入れたいのですが、そこまでまだ手がつけられていません。
本文の文章が3行あるとすると、このマクロではComment1、Comment2、Comment3と名前付しています。
Sub SendEmail()
Dim OlApp As Outlook.Application
Dim mItem As Outlook.MailItem
Dim cell As Range
Dim Subj As String
Dim EmailAddr As String
Dim Recipient As String
Dim Msg As String
Dim Message As String
Dim Sender As String
Dim Comments As String
Dim Comments2 As String
Dim report As String
Worksheets("Sheet1").Activate
'Create Outlook object
Set OutlookApp = New Outlook.Application
'Get the data
Subj = Range("Subject")
EmailAddr = Range("To_address")
CCAddr = Range("Cc_address")
Body = Range("Comment1") & ("Comment2") & ("Comment3")
'Compose message
Msg = Msg & Comment1 & vbCrLf & vbCrLf
Msg = Msg & Comment2 & vbCrLf & vbCrLf
Msg = Msg & "Best regards," & vbCrLf & vbCrLf
'Create Mail Item
Set mItem = OutlookApp.CreateItem(olMailItem)
With mItem
.To = EmailAddr
.CC = CCAddr
.BCC = BCCAddr
.Subject = Subj
.Body = Msg
.Display
End With
End Sub
宜しくお願い致します。
No.4ベストアンサー
- 回答日時:
こんにちは。
>Msg = Msg & Comment2 = "<BR>" & "<A HREF=""http://検索</b></A> "
落ち着いて!
「= 」が入ると、False になります。
'Compose message
Msg = "<font face=""Arial""><font size=2>"
Msg = Msg & Comment1 & "<BR><BR><BR>"
Msg = Msg & Comment2 & "<A HREF=""http://google.co.jp/""><b>goole検索</b></A> "
Msg = Msg & Comment3 & "<BR><BR><BR>"
Msg = Msg & Comment4 & "<BR><BR><BR><BR>"
Msg = Msg & "Best regards," & "<BR><BR>"
Msg = Msg & "</font></font>"
"<A HREF=""http://google.co.jp/""><b>goole検索</b></A> "
↑ ↑
リンク先アドレス リンク名 (表示はずれるかもしれません)
一人でテンパッてしまってすみません。。。
そうですよね、=じゃだねですよね。。
'Compose message
Msg = "<font face=""Arial""><font size=2>"
Msg = Msg & Comment1 & "<BR><BR><BR>"
Msg = Msg & Comment2 & "<BR><BR><BR>"
Msg = Msg & Comment3 & "<A HREF=""http://**web:858/sites/~%7d""></b></A> " & "<BR><BR>"
Msg = Msg & Comment4 & "<BR><BR><BR><BR>"
Msg = Msg & "Best regards," & "<BR><BR>"
Msg = Msg & "</font></font>"
とやるとリンクではなく文章に。。。
上記マクロではシェアポイントのアドレスはhttpから始まって長々3行程で最後の文字が7dです。
PCにも疎かった私が、仕事で突然マクロを作成する業務を与えられ右も左もわからない状態で。。。
本を買って一から初めているのですが全然馴染めなくて、それでここのサイトでお世話になる事3回目なのですが、文字の羅列やらで本当にテンパってしまっているうえに何回も質問して本当にすみません。。。
Wendy02さんにも本当に感謝しております。あともう少し、お付き合いいただければ幸いです。
すみません・・・宜しくお願い致します!
No.6
- 回答日時:
こんにちは。
>出来ました!!
>アドレスをテキスト形式で定義し直して
そうですね。そのほうが、コードでごちゃごちゃ書くよりも、確かです。
出来たそうで、良かったですが、こちらから、少しお聞きしたいのですが。
実は、こちらは、そうしたシステムを構築する話を聞かれたのですが、管理する側の問題もあって、やめておいたらと言ってしまったのです。
実は、私は、SharePointは、使ったことがありません。サーバー自体にセキュリティがある限りは、直ハイパーリンクを書いても、サーバーの中から外には出来ても、外から中には出来ないのではありませんか。試したことがないので、これに関しては、良く分かりません。
こんにちは。
ネットやPCに関して詳しくないのできちんと回答できているかわからないですが・・・
私の今回のsharePointは社内のある部が所有・管理しているもので、そこに対してのアクセス権限を付与されていればアクセスできるものなので、おそらくWendy02さんが想像されているようなアドレス同士(ネット同士)ではありません。
なのでサーバーの中から外には出来ても、外から中には出来ないのではというのとは違い社内レベルです。
回答になっていますかね?
なっていなかったらすみません。。。
No.5
- 回答日時:
こんばんは。
>リンクではなく文章に。。。
文章が対象とされてしまうということですね。
>Msg = Msg & Comment3 &"<A HREF=""http://**web:858/sites/~%7d""><b>「表示する内容」</b></A>"&"<BR><BR>"
「表示する内容(TextToDisplay)」ハイパーリンクで表示されるテキスト--が必要ですね。[<b>......</b></A>]
いらない場合は、同じ内容のアドレスとか。
なお、作成画面だけでは、Outlook の場合は、セキュリティが働いて、ハイパーリンクが成功しているのか分からないかもしれませんが、こちらで、実際の送信・受信して、ハイパーリンクが成功しているか確認していますから、まず間違いないです。
それと、
#3で書いた、「VB型で作る方法は、他の人の方法も、だいたい同じようです。」というのは、実は、有名なコンピュータの会社が書いていた、実際のコードを参考にしていますので、作り方自体は間違いはないはずです。
なお、Outlook VBAのマニュアルは、かなり値段の高いものですし、内容も慣れないせいか、かなり難しいです。VBAも、Access, Excel 以外は、なかなか手の届かない世界だと思います。私は、Office VBAに関わり過ぎて、一体、何に時間を費やしているのだろう、と思うことがあります。マニュアルも、Developer クラスのものは高い割には、そんなに真剣に読んでいません。いずれ、こういうものは、他に変わる日も近いと思うと、集中できません。
この回答への補足
出来ました!!
アドレスをテキスト形式で定義し直して、Wendyさんの教えていただいた通りにアドレスを繰り返して、いろいろやってみたら出来ました。
本当にありがとうございました!
ありがとうございました!
Wendy02さん
こんにちは。
同じアドレスを繰り返すのも試しても出来ません。。。
>「表示する内容(TextToDisplay)」ハイパーリンクで表示されるテキスト--が必要ですね。[<b>......</b></A>]
というのはどういう事でしょうか?
用語に詳しくないのでわからないのですが、
httpのアドレスの末尾に。<b>......</b></A>が必要で、なおかつ....部分の名前が必要という事でしょうか?
シェアポイントではどこを見ればわかりますでしょうか?
すみません。
No.3
- 回答日時:
こんにちは。
例えば、
CommentAD = "<BR>" & "<A HREF=""http://google.co.jp/""><b>goole検索</b></A> "
HyperLink は、こんなものを、Comment の中に入れてやれば良いわけです。VB型で作る方法は、他の人の方法も、だいたい同じようです。コードだけをみると、少し分かりにくいですね。
ありがとうございます。
早速やってみたのですが
'Compose message
Msg = Msg & Comment1 & "<BR><BR><BR>"
Msg = Msg & Comment2 = "<BR>" & "<A HREF=""http://検索</b></A> "
Msg = Msg & Comment3 & "<BR><BR><BR>"
Msg = Msg & Comment4 & "<BR><BR><BR>"
Msg = Msg & "Best regards," & vbCrLf & vbCrLf
'Create Mail Item
Set mItem = OutlookApp.CreateItem(olMailItem)
With mItem
.To = EmailAddr
.CC = CCAddr
.BCC = BCCAddr
.Subject = Subj
.HTMLBody = Msg
.Display
End With
End Sub
でやってみたところ
文字がArialではなくゴシックになっていて、リンクもリンクがとけて通常の文章になっており、Comment1が表示されません。
私のマクロは、どこが間違っているのでしょうか?
すみません・・・・
No.2
- 回答日時:
こんにちは。
>メールのフォントをArialにしたい場合は設定はなんと書けばいいのでしょうか?
前回の、テキスト形式のメールには、基本的には、フォントの種類というものが存在しないので、相手の設定まかせですが、こちらでフォントの種類の指定が必要なら、HTML形式ファイルにしないといけません。
そこで以下の部分は変わります。'Arial' は、Windows のデフォルトのフォントの種類で、もっとも確実なフォントの種類ですね。フォントファイルが入っていなくても表示するだったと思います。フォントサイズは、2 =>10, 3 =>12 という大きさになります。
'Compose message
Msg = "<font face=""Arial""><font size=2>"
Msg = Msg & Comment1 & "<BR><BR><BR>"
Msg = Msg & Comment2 & "<BR><BR>"
Msg = Msg & Comment3 & "<BR><BR><BR>"
Msg = Msg & Comment4 & "<BR><BR><BR><BR>"
Msg = Msg & "Best regards," & "<BR><BR>"
Msg = Msg & "</font></font>"
'Create Mail Item
Set mItem = OutlookApp.CreateItem(olMailItem)
With mItem
.To = EmailAddr
.CC = CCAddr
.BCC = BCCAddr
.Subject = Subj
.HTMLBody = Msg 'ここを変える
.Display
End With
早々のお返事ありがとうございます。
試してみましたら、別の問題が出てきまして、
Comment1、3は普通の英語なので、今教えていただいた設定でうまくいったのですが
Comment2が、リンク先(社内で使用しているシェアポイントのhttp://から始まっているアドレスになりますが、そこがアドレス扱いではなく普通の英語文のようになってしまってリンクが溶けています。
Msg = Msg & Comment1 & "<BR><BR><BR>"
Msg = Msg & Comment2 & Comment2 & vbCrLf & vbCrLf
Msg = Msg & Comment3 & "<BR><BR><BR>"
とComment2だけ変更するのかなとやってみたのですが、出来ませんでした。
どうすれば宜しいでしょうか?
度々すみません。。。
どうぞ宜しくお願い致します。
No.1
- 回答日時:
こんばんは。
この行がヘンです。
>Body = Range("Comment1") & ("Comment2") & ("Comment3")
Comment1 = Range("Comment1").Value
Comment2 = Range("Comment2").Value
Comment3 = Range("Comment3").Value
としておいて、
Msg = Msg & Comment1 & vbCrLf & vbCrLf
Msg = Msg & Comment2 & vbCrLf & vbCrLf
Msg = Msg & Comment3 & vbCrLf & vbCrLf
Msg = Msg & "Best regards," & vbCrLf & vbCrLf
とすればよいと思います。
Body という変数はいらないです。(Body という変数は予約語としてバッティングしませんが、こうした変数名は使わないほうがよいです。)
それと、一般的に、Nameオブジェクトの名前-定義-登録は、VBAでは、ワークシートから、引っ張って使わないほうがよいです。トラブル発生の元になります。名前-定義は、一見、固定のように見えますが、いくつかの条件が重なると、移動してしまいます。一回トラブると、さっぱりエラーの原因が読めなくなります。
明示的に、Range("A1") などとしたほうがよいです。ここの掲示板でいろんなトラブルを見てきて言っているのですが、いくら私が言っても、初級レベルの人ですと、耳を貸さない人がほとんどですが、注意だけは与えておきます。説明すると、難しくなります。
Wendy02さん
ありがとうございます。ご指摘いただきましたように変更してみました。きちんと出来ました!ありがとごいざます。
あと一点だけお伺いしたいのですが、メールのフォントをArialにしたい場合は
設定はなんと書けばいいのでしょうか?
名前-定義-登録、きちんと書き換えました!下記に載せますね。
Sub SendEmail()
Dim OlApp As Outlook.Application
Dim mItem As Outlook.MailItem
Dim cell As Range
Dim Subj As String
Dim EmailAddr As String
Dim Recipient As String
Dim Msg As String
Dim Message As String
Dim Sender As String
Dim Comments As String
Dim Comments2 As String
Dim report As String
Worksheets("Sheet1").Activate
'Create Outlook object
Set OutlookApp = New Outlook.Application
'Get the data
Subj = Range("I10")
EmailAddr = Range("I4")
CCAddr = Range("I7")
Comment1 = Range("I13").Value
Comment2 = Range("I15").Value
Comment3 = Range("I17").Value
Comment4 = Range("I20").Value
'Compose message
Msg = Msg & Comment1 & vbCrLf & vbCrLf & vbCrLf
Msg = Msg & Comment2 & vbCrLf & vbCrLf
Msg = Msg & Comment3 & vbCrLf & vbCrLf & vbCrLf
Msg = Msg & Comment4 & vbCrLf & vbCrLf & vbCrLf & vbCrLf
Msg = Msg & "Best regards," & vbCrLf & vbCrLf
'Create Mail Item
Set mItem = OutlookApp.CreateItem(olMailItem)
With mItem
.To = EmailAddr
.CC = CCAddr
.BCC = BCCAddr
.Subject = Subj
.Body = Msg
.Display
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) Excel VBA メール作成について 本文の中にExcel でコピーした図を上下に2つ 貼り付けを 2 2023/06/14 01:48
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VBA エクセル メール送信 ハイパーリンクの貼り方
その他(Microsoft Office)
-
エクセル VBA メール本文に指定セルに記載されているURLをリンクとして記載する方法
Visual Basic(VBA)
-
VBAのフォント変更(エクセルからoutlookのメール作成において)
Visual Basic(VBA)
-
-
4
Excel VBA メール作成について 本文の中にExcel でコピーした図を上下に2つ 貼り付けを
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
outlook 文字を揃えたい。tab...
-
マイクロ(μ)の文字を半角で出...
-
教えてください。
-
似ているフォント(Win⇔Mac)
-
英語版OSでの遊明朝、游ゴシック
-
「MS Pゴシック」と同じ幅の...
-
縦書きテキストボックスの表示"...
-
C# Font GdiCharSet
-
一番識別し易い フォントとは
-
フォントファイル(.ttf , .otf)...
-
逆向き/(スラッシュ)の入力方法
-
MsgBoxについて
-
CreateFontIndirectとは?
-
HG丸ゴシックM-PRO?
-
WORD全角入力しても半角に...
-
Webサイトのフォント・級数変更...
-
VB6.0でLabelに表示する文字を...
-
TTFファイル(TTCやOTFでもよい...
-
エクセルVBAが中国のPCでは動か...
-
font-family の記載方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
outlook 文字を揃えたい。tab...
-
マイクロ(μ)の文字を半角で出...
-
教えてください。
-
MsgBoxについて
-
似ているフォント(Win⇔Mac)
-
「MS Pゴシック」と同じ幅の...
-
英語版OSでの遊明朝、游ゴシック
-
font-family の記載方法
-
ワードでゴシックの文字を太く...
-
メールで、榊の文字を木辺に神...
-
16x16のスプライトフォント
-
C# Font GdiCharSet
-
フォントファイル(.ttf , .otf)...
-
Visual C++ 6.0 行番号の表示
-
縦書きテキストボックスの表示"...
-
エクセルVBAが中国のPCでは動か...
-
WORD全角入力しても半角に...
-
Wordで、指定したフォント...
-
エクセルの代替フォントを指定...
-
CreateFontIndirectとは?
おすすめ情報