マクロ初心者です。
マクロで範囲選択したセルをOutlookのメールの本文に貼り付けたいのですがなかなか上手くいきません。
コードは画像のものを使っていて、赤く線を引いたところで躓いてます。
1つのセルを指定した時はちゃんと反映するのに、複数のマクロを指定してマクロを起動させると本文に【-1】と出ます。
他サイトで聞いた時に
>objAppt.body = Range("DU7:DW10").Select
を
objAppt.display objAppt.BodyFormat = 1 Range("DU7:DW10").Copy objAppt.getInspector.WordEditor.Windows(1).Selection.Paste
とに変えるといいと教えてもらったのですが、
開かれたメール画面のアドレス欄と送信ボタンが消え、
objAppt.BodyFormat = 1の箇所が黄色くなります。
本文の欄にも何も表示されません。
なんのコードを入れたら上手くいくかアドバイスください…。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんにちは
OUTLOOKのVBAはまったく存じませんけれど・・・
予定表の送信をしようとしているのでしょうか?
エラーになるという1行に関してですが、
リファレンスによれば、AppointmentItem.Bodyは文字列のはずです。
ですので、右辺のRange.Selectはどうみてもおかしく感じられます。
https://docs.microsoft.com/ja-jp/office/vba/api/ …
>本文に【-1】と出ます。
Selectの戻り値が何か知りませんけれど、論理値の-1が返されているのではなかろうかと推測します。
セル範囲をどのように文字列にしたいのか不明ですけれど、単純に連結すればよいだけなら、各セルの内容を連結すればすむのでははないでしょうか?
(エクセルで空きセルに連結結果を作成しておいて、そのセルを参照するようにしてもよさそうに思います。)
仮に、TextJoin関数が使える環境であるとして、単純連結であるなら
Application.TextJoin("", 1, Range("DU7:DW10"))
などでも同様の結果が得られるのではと推測します。
なお、ご質問には関係ありませんけれど、少々気になったのは、
>CreateItem(1)
となっていますが、AppointmentItemの場合は、リファレンスによるとOlItemTypeは「1」ではなく「1-d」(またはolAppointmentItem)だと思われるのですが・・・?
https://docs.microsoft.com/ja-jp/office/vba/api/ …
※ リファレンスを見ただけで未検証ですので、はずしていたら無視してください。
No.1
- 回答日時:
こんにちは、
ご質問と添付図の内容が合わないように思うのですが、、
添付図について
Selectは選択なので、TextやValueにする必要があるのでは?
また、範囲に対して前でのプロパティは、一度に取得できないので
範囲内をForなどでループしてString型の変数に値を集約して(必要に応じ改行も)Body=String型の変数にすれば良いと思います。
例えばこんな感じ、、
Dim myBody As String, myCell
For Each myCell In Range("DU7:DW10")
If myBody = "" Then
myBody = myCell.Value & vbCrLf
Else
myBody = myCell & myCell.Value & vbCrLf
End If
Next
objAppt.Body = myBody
この場合の取得セル方向はDU7ー>DV7ー>DW7、DU8>>>です
ご質問文について
objAppt.display objAppt.BodyFormat = 1 Range("DU7:DW10").Copy objAppt.getInspector.WordEditor.Windows(1).Selection.Paste
これ改行は?
まぁ、すべて改行されていなければ、コンパイルエラーだと思いますが、
objAppt.display objAppt.BodyFormat = 1 って、、改行あります?
objAppt.display メールアイテム(新規作成中メール)を表示
objAppt.BodyFormat = 1 テキスト形式を指定
Range("DU7:DW10").Copy objAppt.getInspector.WordEditor.Windows(1).Selection.Paste
セル範囲をコピーしペースト、.Selection.Pasteが通るのかは知りません。
先ずは、気になった点です。
Outlookを使用していないのと、コードが画像なので検証はしていません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Visual Basic(VBA) 4月~3月まで12カ月横に並んだ表へ指定範囲を貼り付けたい。 Sheet2の指定範囲、Range(" 2 2022/11/30 16:37
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 09:24
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/01/23 17:13
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Excel VBA メール作成について 本文の中にExcel でコピーした図を上下に2つ 貼り付けを
Visual Basic(VBA)
-
Excel VBA メール作成について Excelで作った表を写真のハイパーリンクの後に 図形にして
Visual Basic(VBA)
-
ExcelVBAでOutlookにセル内容を送る
その他(プログラミング・Web制作)
-
-
4
VBAのフォント変更(エクセルからoutlookのメール作成において)
Visual Basic(VBA)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
OutLookのメール本文への貼付の仕方
Excel(エクセル)
-
7
VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本
Visual Basic(VBA)
-
8
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
9
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
10
アウトルックが起動しているかどうかを取得するには?
Visual Basic(VBA)
-
11
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
12
Excelで数式内の文字色を一部だけ変更したい
Excel(エクセル)
-
13
VBA エクセル メール送信 ハイパーリンクの貼り方
その他(Microsoft Office)
-
14
エクセルである日付を過ぎたら自動でメール送信。
Excel(エクセル)
-
15
VBAで既存のパワポのファイルを開くには?
Access(アクセス)
-
16
エクセルVBAでOutlookメールの書式を変える
Excel(エクセル)
-
17
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
18
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
19
outlook文字色付け/マーカーのVBAコード
その他(Microsoft Office)
-
20
Excel VBA Outlookメール作成について
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel UserForm の表示位置
-
特定の色のついたセルを削除
-
VBAマクロ実行時エラーの修正に...
-
エクセルVBA 配列からセルに「...
-
EXCEL VBA 文中の書式ごと複写...
-
excelで結合セルの場合にエラー...
-
【Excel VBA】一番右端セルまで...
-
エクセルのカーソルを非表示に...
-
Excel 範囲指定スクショについ...
-
Excel2003 VBA 「*」を含む文字...
-
セルの半透明着色処理
-
飛び地セルの空白判定
-
昨日、質問した件『VBA にて、...
-
Rangeの範囲指定限界
-
Excel VBA : セルのコメントの...
-
【VBA】【ユーザーフォーム_Lis...
-
関数の引数でrangeを指定したとき
-
Excel VBAでCheckboxの名前を変...
-
VBAでユーザーフォームにセル値...
-
特定の文字を含むセル以外行ご...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
Excel UserForm の表示位置
-
エクセルVBA 配列からセルに「...
-
EXCEL VBA 文中の書式ごと複写...
-
特定の色のついたセルを削除
-
【Excel VBA】一番右端セルまで...
-
Excelで空白セル直前のセルデー...
-
【VBA】写真の貼り付けコードが...
-
VBAコードについて教えてくださ...
-
【VBA】【ユーザーフォーム_Lis...
-
Excel 範囲指定スクショについ...
-
VBAでユーザーフォームにセル値...
-
VBA:日付を配列に入れ別セルに...
-
VBA にて、条件付き書式で背景...
-
Excel VBAでCheckboxの名前を変...
-
複数指定セルの可視セルのみを...
-
Excel VBA IF文がうまく動作し...
-
エクセルのカーソルを非表示に...
-
入力規則のリスト選択
-
VBA 複数条件の分岐処理の上手...
おすすめ情報