
マクロ初心者です。
マクロで範囲選択したセルを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)
-
VBAのフォント変更(エクセルからoutlookのメール作成において)
Visual Basic(VBA)
-
Excel VBA メール作成について Excelで作った表を写真のハイパーリンクの後に 図形にして
Visual Basic(VBA)
-
-
4
OutLookのメール本文への貼付の仕方
Excel(エクセル)
-
5
ExcelVBAでOutlookにセル内容を送る
その他(プログラミング・Web制作)
-
6
Excel VBA Outlookメール作成について
Excel(エクセル)
-
7
Excel VBA メール作成について Excel D7セルをOutlookの本文(HTML)にしま
Visual Basic(VBA)
-
8
エクセル VBA メール本文に指定セルに記載されているURLをリンクとして記載する方法
Visual Basic(VBA)
-
9
エクセルVBAでOutlookメール作成
その他(Microsoft Office)
-
10
【Excel】 VBAを使って毎回名前が変わるファイルを添付してメール送信したい。
Excel(エクセル)
-
11
VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本
Visual Basic(VBA)
-
12
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
13
VBAでEmpty値って何ですか?
Excel(エクセル)
-
14
エクセルVBAでセル範囲のデータをクリップボードに
その他(Microsoft Office)
-
15
リストと一致する値のセルを塗りつぶしたい。
その他(Microsoft Office)
-
16
エクセルVBAでOutlookメールの書式を変える
Excel(エクセル)
-
17
outlook文字色付け/マーカーのVBAコード
その他(Microsoft Office)
-
18
VBA コピーが出来ません…!
Visual Basic(VBA)
-
19
i=cells(Rows.Count, 1)とi=cells(Rows.Count, 2)の違い
Visual Basic(VBA)
-
20
Excel VBA メール作成について 下記についてどのように記述したらいいか、教えて頂けると幸いで
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba Array関数について教えてく...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】並び替えの範囲が、...
-
エクセルのVBAコードと数式につ...
-
エクセルのマクロについて教え...
-
エクセルの改行について
-
【VBA】 結合セルに複数画像と...
-
vbsでのwebフォームへの入力制限?
-
算術演算子「¥」の意味について
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
Vba セルの4辺について罫線が有...
-
vb.net(vs2022)のtextboxのデザ...
-
ダブルクリックで貼り付けた画...
-
VBAの「To」という語句について
-
VBAでユーザーフォームを指定回...
-
VBAでCOPYを繰り返すと、処理が...
-
【マクロ】変数を使った、文字...
-
エクセルのVBAコードについて教...
-
ワードの図形にマクロを登録で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba セルの4辺について罫線が有...
-
vbsでのwebフォームへの入力制限?
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
【マクロ】並び替えの範囲が、...
-
エクセルの改行について
-
エクセルのマクロについて教え...
-
vb.net(vs2022)のtextboxのデザ...
-
VBAでCOPYを繰り返すと、処理が...
-
VBA ユーザーフォーム ボタンク...
-
エクセルのVBAコードと数式につ...
-
エクセルのVBAコードについて教...
-
[VB.net] ボタン(Flat)のEnable...
-
【マクロ】変数を使った、文字...
-
改行文字「vbCrLf」とは
-
質問58753 このコードでうまく...
-
【マクロ】シートの変数へ入れ...
-
ワードの図形にマクロを登録で...
-
算術演算子「¥」の意味について
おすすめ情報