質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。

Q&A

解決済

1回答

706閲覧

【Excel VBA】Outlookメール本文の改段落の行間サイズを設定したい【Outlook】

netz-eng

総合スコア105

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。

0グッド

0クリップ

投稿2024/02/14 07:07

編集2024/02/20 00:59

実現したいこと

Excel VBAから、Outlookのメールを作成する際、
改段落の行間サイズをデフォルトの「0行」にしたいです。

発生している問題・分からないこと

メールを作成し、
[書式設定]タブ → [段落] → [間隔] → [段落後] を確認すると、
普段はこれが「0行」になっているのですが、
VBA経由で作成したときだけ、「12pt」になってしまいます。

これを、VBA側の記述で「0行」にしたいです。

イメージ説明
イメージ説明

該当のソースコード

VBA

1Sub Trial_Mail() 2 3Dim toaddress As String 4Dim subject, mailBody As String 5Dim outlookObj As Outlook.Application 6Dim mailItemObj As Outlook.mailItem 7Dim WEObj As Object 8 9Application.ScreenUpdating = False 10 11'To宛先 12toaddress = "aaa@gmail.com" 13'件名 14subject = "件名" 15 16'メール作成 17mailBody = "<span style=""font-size:10.5pt; font-family:游ゴシック (本文のフォント - 日本語)"">" _ 18      & "本文</span>" 19 20Set outlookObj = CreateObject("Outlook.Application") 21Set mailItemObj = outlookObj.CreateItem(olMailItem) 22 23With mailItemObj 24 25 .To = toaddress 'To宛先をセット 26 .subject = subject '件名をセット 27 .HTMLBody = mailBody '本文をセット 28 29'メール表示 30 .display 31 32End With 33 34'オブジェクトの解放 35Set outlookObj = Nothing 36Set mailItemObj = Nothing 37 38End Sub 39

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他

Outlookの書式はWordEditorで変更するとのことだったので、
Word VBAと見比べながら、下記コードを挿入してみましたが、

①:実行時エラー438(オブジェクトはこのプロパティまたはメソッドをサポートしていません)
②:エラーは出ないが。段落後の行間サイズに変化なし
という結果でした。

VBA

1 Set WEObj = mailItemObj.GetInspector().WordEditor 2 3 With WEObj 4 5'方法① 全選択して選択範囲の段落改行サイズを変更 →エラー 6 .Content.Select 7 8 With Selection.Paragraphs.Format 9 10 .LineUnitAfter = 0 11 12 End With 13 14'方法② 各段落をループして改行サイズを変更 →エラーは出ないが変化なし 15 For i = 1 To .Paragraphs.Count 16 17 .Paragraphs(i).LineUnitAfter = 0 18 19 Next i 20 21 End With

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12247959362
こちらの回答を参考に、下記コードを追加したところ、改段落の行間サイズを0にすることができました。

VBA

1Dim body as Object 2 3Set body = mailItemObj.GetInspector().WordEditor.Windows(1).Selection 4body.ParagraphFormat.SpaceAfter = 0

投稿2024/02/20 01:43

netz-eng

総合スコア105

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問