お詳しい方 ご教授をお願いします。
下記のコードを組んだのですが、メールをHDML形式で本文にどうしても指定セルのURLをリンク状態で記載されませ。
例としてセルB11にURL先が記載されているという条件でどうのようにコードを組むか
アドバイスを頂けないでしょうか。
Sub sumple1_Click()
'To 抽出~メール起動------------------------------------------------------
Dim oApp As Object
Dim oMail As Object
Dim i As Long, tmpto As String
Application.ScreenUpdating = False
Set oApp = CreateObject("Outlook.Application")
Set oMail = oApp.CreateItem(0)
'宛先
For i = 2 To Cells(Rows.Count, "G").End(xlUp).row
If Range("G" & i).Value <> "" Then
If tmpto = "" Then
tmpto = Range("G" & i).Value
Else
tmpto = tmpto & "," & Range("G" & i).Value
End If
End If
Next i
If tmpto <> "" Then
With oMail
.To = tmpto
'To 抽出終わり----------------------------------------
'件名
.Subject = Range("B9").Value
'本文
'内容抽出-------------------------------------------
.Body = Range("B10").Value
.Display '表示
'.Send '送信
End With
End If
Application.ScreenUpdating = True
End Sub
No.8ベストアンサー
- 回答日時:
こんばんは。
>セルB11のURLが本文では青字(リンク状態)にどうしてもなりませんでした。
Outlook のオプション設定で、ディフォルトのメール形式がテキストに設定してあるんだと思いますよ。
全体を再掲します。下記のソースでお試し下さい。
# HTMLソースをVBAで書くのは面倒なので
# リンクはOutlookにまかせてます
Sub sumple1_Click()
'Outlook/CreateObject 定数
Const olMailItem = 0 'メール
'Outlook/CreateItem 定数
Const olFormatPlain = 1 'テキスト形式メール
Const olFormatHTML = 2 'HTML形式メール
'To抽出 -----------------------------------------------
Dim i As Long
Dim tmpto As String
'宛先
For i = 2 To Cells(Rows.Count, "G").End(xlUp).Row
If Range("G" & i).Value <> "" Then
If tmpto = "" Then
tmpto = Range("G" & i).Value
Else
'■↓変更 アドレス区切り文字は「;」
tmpto = tmpto & ";" & Range("G" & i).Value
End If
End If
Next i
If Len(tmpto) = 0 Then Exit Sub '宛先がなければ終了
'本文を作成 -------------------------------------------
Dim body_text As String
body_text = Range("B10").Value _
& Range("B11").Value
'Outlookを起動してメール作成 --------------------------
Dim oApp As Object 'Outlook.Application
Dim oMail As Object 'Outlook.MailItem
Set oApp = CreateObject("Outlook.Application")
Set oMail = oApp.CreateItem(olMailItem)
With oMail
.BodyFormat = olFormatHTML '<--■追加 HTML形式
.To = tmpto '宛先
.Subject = Range("B9").Value '件名
.Body = body_text '本文
.Display 'ブレビュー
'.Send '送信
End With
'他アプリを操作したらオブジェクトを必ず破棄
'オートメーションエラーの原因になります
Set oMail = Nothing
Set oApp = Nothing
End Sub
No.5
- 回答日時:
URLリンクだけなら HTML メールである必要はありませんね。
テキスト形式でも URL はリンクになります。
補足からご質問での実現したい事の課題は、複数のセルにある値をいかに連結するかにあると判断しました。
テキストはB10またはB11セルにあるそうですが、VBAソースからはその痕跡が見られなかったので。
余談ですが、改行コード vbNewline は Windows だと vbCrLf と同意です。
No.4
- 回答日時:
こんにちは
>HTMLメールを本文にどうしても指定セルのURLをリンク状態で記載されませ。
HTML形式の例
'To 抽出終わり----------------------------------------
Dim strHTML As String
If tmpto <> "" Then
If Range("B11") <> "" Then
strHTML = Range("B10").Text & "<br>" _
& "<a href=" & Range("B11").Text & "> 参考URL</a>"
Else
strHTML = Range("B10").Text & "</a>"
End If
With oMail
'件名
.Subject = Range("B9").Value
.To = tmpto
.CC = ""
'本文
.HTMLBody = "<b>宛先各位</b>" _
& "<br><br>" _
& " 初めに" _
& "<br><br>" _
& "要件<br>" _
& strHTML _
& "<br><br>" _
& "<a href=""https://oshiete.goo.ne.jp/qa/13084470.html"">教えて!goo</a>"
'.Attachments.Add ("C:\Users\xx\添付ファイル.pdf")
.Display '表示
'.Send '送信
End With
End If
If Range("B11") <> "" Thenの条件は適当
文字列作成 (文字列 改行 リンク文字(非表示) 表示文字)
strHTML = Range("B10").Text & "<br>" _
& "<a href=" & Range("B11").Text & "> 参考URL</a>"
URLだけを表示したい場合は
strHTML = Range("B10").Text & "<br>" _
& "<a href=" & Range("B11").Text & ">" & Range("B11").Text & "</a>"
No.3
- 回答日時:
ごめんなさい。
レイトバインドなの忘れてました。#2の下記部分を差し替えて下さい
Dim oApp As Outlook.Application ' Object
Dim oMail As Outlook.MailItem ' Object
↓
Dim oApp As Object
Dim oMail As Object
No.2
- 回答日時:
HTML で本文を書いてない=テキスト形式メールであるなら
→#1 ■VBA ソースについて はスルーして下さい
>この併せて表示というのがなかなかうまくいかず難儀しています。
単純に文字列を連結して Body に指定すれば良いと思いますよ。
改行は vbNewline です。ソース全体を少し直しました。
Sub sumple1_Click()
'Outlook/CreateObject 定数
Const olMailItem = 0 'メール
'Outlook/CreateItem 定数
Const olFormatPlain = 1 'テキスト形式メール
Const olFormatHTML = 2 'HTML形式メール
'To抽出 -----------------------------------------------
Dim i As Long
Dim tmpto As String
'宛先
For i = 2 To Cells(Rows.Count, "G").End(xlUp).Row
If Range("G" & i).Value <> "" Then
If tmpto = "" Then
tmpto = Range("G" & i).Value
Else
tmpto = tmpto & "," & Range("G" & i).Value
End If
End If
Next i
If Len(tmpto) = 0 Then Exit Sub ’宛先がなければ終了
'Outlookを起動してメール作成 --------------------------
Dim oApp As Outlook.Application ' Object
Dim oMail As Outlook.MailItem ' Object
Set oApp = CreateObject("Outlook.Application")
Set oMail = oApp.CreateItem(olMailItem)
'B10セル、B11セルの内容を連結して本文作成
Dim body_text As String
body_text = Range("B10").Value & vbNewLine _
& Range("B11").Value
With oMail
.To = tmpto '宛先
.Subject = Range("B9").Value '件名
.Body = body_text '本文
.Display 'ブレビュー
'.Send '送信
End With
'重要
'他アプリを操作したらオブジェクトを必ず破棄
'オートメーションエラーの原因になります
Set oMail = Nothing
Set oApp = Nothing
End Sub
No.1
- 回答日時:
こんにちは。
下記ポイントを確認してみて下さい。
■Outlook 側の設定はどうなっていますか?
https://support.microsoft.com/ja-jp/office/f361c …
■一斉配信は、BCC欄(またはCC欄)を通常使います。
配信数によっては、、ですが、TO欄で大丈夫?
(例)BCC欄を使う場合 oMail.BCC = tmpto
■VBA ソースについて
下記で試してみて下さい。
'内容抽出-------------------------------------------
.BodyFormat = 2 '追加 2:olFormatHTML
'.Body = Range("B10").Value '下行に訂正
.HTMLBody = Range("B10").Value 'B10? B11セル?
■最大発信数について
本件の目的、何件のメール送信になるのかが明記されてません。
メールプロバイダーは1日で送れるメール最大数を定めています。
これは迷惑メール防止、サーバーへの過度な負荷予防の観点から。
この点、問題はありませんか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) Sheet2からオートフィルターで売上日を抽出した件数をカウントし、その件数をSheet1のセルB1 2 2023/01/12 12:24
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) A列B列C列 3 2023/04/26 18:11
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。 「そうなんだね」と「確かに披露する場所ないね」で評価します。
-
「覚え間違い」を教えてください!
私はかなり長いこと「大団円」ということばを、たくさんの団員が祝ってくれるイメージで「大円団」だと間違えて覚えていました。
-
自分のセンスや笑いの好みに影響を受けた作品を教えて
子どもの頃に読んだ漫画などが その後の笑いの好みや自分自身のユーモアのセンスに影響することがあると思いますが、 「この作品に影響受けてるな~!」というものがあれば教えてください。
-
「お昼の放送」の思い出
小学校から中学校、ところによっては高校まで お昼休みに校内放送で、放送委員が音楽とかおしゃべりとか流してましたよね。 最近は自分でもラジオができるようになって、そのクオリティもすごいことになっていると聞きます。
-
VBA エクセル メール送信 ハイパーリンクの貼り方
その他(Microsoft Office)
-
VBAのフォント変更(エクセルからoutlookのメール作成において)
Visual Basic(VBA)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
Excel VBA メール作成について 本文の中にExcel でコピーした図を上下に2つ 貼り付けを
Visual Basic(VBA)
-
5
Excel VBA メール作成について Excelで作った表を写真のハイパーリンクの後に 図形にして
Visual Basic(VBA)
-
6
VBA Cのセルが空白でなかったら、Aのセルに順番に数値を入力
Visual Basic(VBA)
-
7
VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本
Visual Basic(VBA)
-
8
Excelで重複データの件数ではなく、何番目かを求める方法
Excel(エクセル)
-
9
Outlookのメールを送信するマクロ
Word(ワード)
-
10
ExcelVBAでフォルダへのハイパーリンクを
Excel(エクセル)
-
11
エクセルVBAでOutlookメール作成
その他(Microsoft Office)
-
12
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
13
エクセルからOutlookメールを起動させて本文にハイパーリンクを張らせたい
Excel(エクセル)
-
14
Excel VBA メール作成について 下記についてどのように記述したらいいか、教えて頂けると幸いで
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで、抽出したデータだ...
-
ACCESSのクエリー抽出条件にIIF...
-
access クエリ yes/no型のクエ...
-
エクセル関数で住所から丁目番...
-
X-Ripperというフリーウェアに...
-
Accessの選択クエリの抽出条件...
-
PDFファイル/抽出許可され...
-
コンボボックス全ての値を取得...
-
「パラメータが少なすぎます。3...
-
Access2003 式ビルダでのLike...
-
ACCESS クエリ 条件以外のレ...
-
PCゲーム 音声 画像 抽出方法
-
エクセル関数で指定した数字の...
-
未審査請求包袋抽出表作成とは...
-
PDFファイルから特定の文字を検...
-
【Access】条件未入力時、全件...
-
エクセル VBA メール本文に指定...
-
ACCESSのフォームからレポート...
-
Accessで○ヶ月前以前を抽出する...
-
【AccessVBA】レコードセットOp...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで、抽出したデータだ...
-
PDFファイル/抽出許可され...
-
Excel 文字列から6桁の数値の抽出
-
「パラメータが少なすぎます。3...
-
ACCESSのクエリー抽出条件にIIF...
-
未審査請求包袋抽出表作成とは...
-
Access チェックボックスを利用...
-
【AccessVBA】レコードセットOp...
-
AccessのWHERE句において、変数...
-
access クエリ yes/no型のクエ...
-
X-Ripperというフリーウェアに...
-
アクセス 同じフィールド(テキ...
-
PDFファイルから特定の文字を検...
-
Accessの選択クエリの抽出条件...
-
エクセル関数で住所から丁目番...
-
ACCESS クエリ 条件以外のレ...
-
エクセル VBA メール本文に指定...
-
【Access】条件未入力時、全件...
-
コンボボックス全ての値を取得...
-
ACCESSのフォームからレポート...
おすすめ情報
回答いただきありがとうございます。Toの宛先ですが最大5名程度を考えていたので BCCについてはなにも考えていませんでした。今後宛先が増えるようでしたら頂いたアドバイスを参考にさせていただきます。
また、質問事項について説明不足でしたので、下記に質問事項を追加させてもらいます。
現在の悩みは
セル10に本文として下記URLをご参照ください。
などの定型文が記載されており。
セル11に対象のURLが記載さている条件で本文に定型文+URLリンクを表示させたいと考えています。 この併せて表示というのがなかなかうまくいかず難儀しています。
アドバイスありがとうございます。
ご教授いただいたコードをそのまま反映させたところ本文とURLは連結して表示がされるようになったのですが、セルB11のURLが本文では青字(リンク状態)にどうしてもなりませんでした。
連結させる際のコードをもう少し弄ればいけそうな気がしますが、色々自分なりに努力したのですが、なかなかうまくいかず・・
もしよろしければ、不具合についてアドバイスを頂けると助かります。