Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Excel 2013)
「文章」→「表」の順番で書き込みたい/outlookのエクセルVBA操作
投稿日時: 21/05/03 22:59:13
投稿者: OkabeS

エクセルVBAからoutlookを起動し、
メール本文に、「文章」→「表」の順番で書き込みたいのですが、
以下マクロを実行すると、「表」→「文章」の順番になってしまいます。
何か方法はないでしょうか?
お知恵を拝借したく、よろしくお願いします。
 
■以下マクロでしたいこと
(文章)〜さん
    〜の承認をお願いします。
(表)
の順番で反映したい。
 
■以下コード実行結果
(表)
(文章)〜さん
    〜の承認をお願いします。
 

Sub Textandtable ()
 Dim appOlk As Object ' Outlook.Application
     Dim objItem As Object ' Outlook.MailItem
     Dim wrdEditor As Object ' Word.Document
     Dim wrdTable As Object ' Word.Table
     Dim wrdRange As Object ' Word.Range
     Dim iCol As Integer
     Dim iRow As Integer
     Set appOlk = CreateObject("Outlook.Application")
 
     Set objItem = appOlk.CreateItem(olMailItem)
     Const NUM_COLS = 4
     Const NUM_ROWS = 6
     Const olFormatRichText = 3
 
     strMOJI = "〜さん" & vbCrLf & vbCrLf _
              & "〜の承認をお願いします。 " & vbCrLf _
                   
    objItem.Body = strMOJI
 
     objItem.BodyFormat = olFormatRichText
     Set wrdEditor = objItem.GetInspector().WordEditor
     wrdEditor.Activate
      
 
     Set wrdRange = wrdEditor.Application.Selection.Range
     Set wrdTable = wrdEditor.Tables.Add(wrdRange, NUM_ROWS, NUM_COLS)
  
     With wrdTable
         .Style = "表 (格子)"
         .ApplyStyleColumnBands = False
                 .Cell(1, 1).Range.Text = "場所"
                 .Cell(1, 2).Range.Text = "登録番号"
                 .Cell(1, 3).Range.Text = "場所2"
                 .Cell(1, 4).Range.Text = "登録番号"
                .Columns.AutoFit
                  
     End With
   
 
     objItem.Display
End Sub

回答
投稿日時: 21/05/03 23:22:54
投稿者: simple

文末にジャンプしてから、表を挿入すればよいと思います。

 wrdEditor.Application.Selection.EndKey Unit:=6 'wdStory  '■追加
 Set wrdRange = wrdEditor.Application.Selection.Range

投稿日時: 21/05/03 23:34:42
投稿者: OkabeS

Simple様
 
早速のご回答ありがとうございます。
文末にジャンプという手があるのですね。
無事解決いたしました。
ありがとうございました。