実現したいこと
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
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。