A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんばんは
>Excelのコピーした文字を件名に
件名だけ、、試しにと言う事でしょうか
流石に件名だけでは無いでしょうから、
既に回答にある通りCreateObjectでExcelを参照すればExcelVBAのような
操作が可能と思います
(WordEditorを使用した方が良い場合もあります。その場合はWord)
拡大解釈のサンプルですが
Sub AddMailItem()
Dim objMailItem As MailItem
Dim oExlApp As Object, xAry As Variant
Dim xWb As Object, xWs As Object
Dim File_Path As String
Set oExlApp = CreateObject("Excel.Application")
Dim opnFile As Variant
opnFile = oExlApp.GetOpenFileName("Excelファイル(*.xls*),*.xls*")
If VarType(opnFile) = vbBoolean Then Exit Sub
Set xWb = oExlApp.Workbooks.Open(opnFile)
Set xWs = xWb.Sheets(1)
xWs.Activate
oExlApp.Visible = True
xAry = xWs.Range("A1:C1")
oExlApp.Quit
'本文を同じフォルダの同名テキストファイルから取得(文字コード注意
File_Path = Replace(opnFile, Mid(opnFile, InStrRev(opnFile, ".")), ".txt")
Set objMailItem = CreateItem(olMailItem)
With objMailItem
.To = xAry(1, 1)
.CC = xAry(1, 2)
.BCC = ""
.Subject = xAry(1, 3)
.BodyFormat = 1 '1:テキスト、2:HTML、3:リッチテキスト
.Body = In_Txt(File_Path)
.Attachments.Add (opnFile)
.Display
' .Send
End With
End Sub
Public Function In_Txt(File_Path As String)
Dim fn As Integer
Dim rcd As String
Dim strIn As String
fn = FreeFile
Open File_Path For Input As fn
Do Until EOF(fn)
Line Input #fn, rcd
strIn = strIn & rcd & vbCrLf
Loop
Close fn
In_Txt = strIn
End Function
ExcelはExcel.ApplicationのGetOpenFileNameを使用して取得しています
A1:C1の各セルの値を配列に入れてExcelを閉じた後に使用しています
本文は、ブック名と同じテキストファイルから取得しています
同じフォルダにブックとブックと同じ名前のテキストファイルを用意して
ブックのインデックス1のシートのA1:C1セルに値を入れ
テキストファイルに本文を入れて準備します。
テキストファイルの保存文字コードは文字化けなどを確認して保存してください
VBA実行でExcelブックを指定して開くとメールが作成されます。
参考程度で不要部分などを削除や改変してみてください。
No.3
- 回答日時:
こんにちは
セルの値が取得できれば良いものと解釈しました。
>OutlookVBAで実行してみたいです。
エクセルのアプリケーションオブジェクトを生成すれば、あとは通常のエクセルVBAと同様に処理できます。
・アプリケーションの生成
・対象ブックを開く
・セルの値をコピー
といった手順になろうかと思います。
一方で、もしも参照セルが一ヶ所だけなら、わざわざブックを開かなくても直接取得が可能です。
こちらの方が、ブックを開かないですむ分、若干速いと思われます。
ただし、参照したいセル数が多い場合には、前記の手順の方が良いでしょう。
以下に、直接取得する場合の簡単な例をご参考までに。
※ 「test.xlsx の Sheet1 B3」セルの値を取得する例です。
(ブックのパス、シート名、セル位置(=R1C1形式)で指定する必要があります)
Dim oExl, v
Const p = "'C:\Users\hoge\[test.xlsx]Sheet1'!R3C2"
Set oExl = CreateObject("Excel.Application")
v = oExl.ExecuteExcel4Macro(p)
oExl.Quit
MsgBox v
No.2
- 回答日時:
No.1のものです。
>OutlookVBAでExcelのデータをコピー、
メールの件名に貼り付けたいんです。
すみませんが、コピーしないとダメなのでしょうか?
コピー状態で、マクロからはメールに貼り付けるところからとか?
もう少し、詳細を教えて貰えると、良い回答ができるかも知れません。
因みに、クリップボード関係ですと、下記が参考になるでしょうか?
https://www.moug.net/tech/exvba/0150091.html
No.1
- 回答日時:
こんにちは。
Excel VBA メール送信で検索されると、出て来るかと思います。
下記、一例ですが、セルに入っている文字を、Outlookのメールに
入れる様な内容かと。
https://fastclassinfo.com/entry/vba_outlook_send …
下記、上記リンクからのコピーですが。
'プログラム5|メール情報を設定
mymail.BodyFormat = 3 'リッチテキストに変更
mymail.To = ws.Range("B2").Value 'To宛先
mymail.CC = ws.Range("B3").Value 'cc宛先
mymail.BCC = ws.Range("B4").Value 'bcc宛先
mymail.subject = ws.Range("B5").Value '件名
'プログラム6|メール本文を設定
Dim mailbody As String, credit As String
mailbody = ws.Range("B6").Value
credit = ws.Range("B7").Value
mymail.Body = mailbody & vbCrLf & vbCrLf & credit
この回答へのお礼
お礼日時:2022/02/03 14:37
Excelのデータを張り付けるのは確かですが、
OutlookVBAでExcelのデータをコピー、
メールの件名に貼り付けたいんです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelに文字データのみを貼り付けたい 8 2023/05/03 15:38
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) Excelにて、セルに入力してある文字の中から文字と最後の数字のみ切り取り貼り付けるVBA 5 2022/12/27 08:40
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
- Excel(エクセル) ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存 2 2022/04/18 13:15
- Excel(エクセル) Excelの文字列を数字に変換する方法について 6 2023/07/31 21:18
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Eclipseのコード入力時の、行コ...
-
Access VBAから使用したExcelプ...
-
arduino unoからデータを読み出...
-
エクセルVBA 実行時エラー'...
-
EXCEL VBAで複数行のコピー(...
-
DataTableに入っているデータを...
-
マウントしたディスクにcpで、...
-
C++言語で、構造体のコピーは可...
-
Ctrl + Cなど複数の入力キー...
-
ACCESS VBAでExcelを開き行をコ...
-
【UWSC】WEBページ内コピーした...
-
エクセルのマクロについて教え...
-
文字列の切り出し
-
Listviewに表示された文字のコ...
-
ブラウザからコピペすると文字...
-
OutlookVBAでコピーした文字を...
-
ASP.net でコントロールをコピー
-
Excel VBA キーワードから列を...
-
ROBOCOPYをスペース付きのフォ...
-
VBA 最終行・最終列コピー範囲...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access VBAから使用したExcelプ...
-
エクセルのマクロについて教え...
-
DataTableに入っているデータを...
-
Eclipseのコード入力時の、行コ...
-
C++言語で、構造体のコピーは可...
-
プログラムについて。
-
エクセルVBA 実行時エラー'...
-
Ctrl + Cなど複数の入力キー...
-
マウントしたディスクにcpで、...
-
Activesheet.Pasteで困っています
-
一行おきに貼り付ける 可能でし...
-
Listviewに表示された文字のコ...
-
文字列の切り出し
-
arduino unoからデータを読み出...
-
シートに張り付けたボタンがシ...
-
ブラウザからコピペすると文字...
-
ROBOCOPYをスペース付きのフォ...
-
バッチで当日日付で作成される...
-
jakarta poiを使用し、EXCELの...
-
ACCESS VBAでExcelを開き行をコ...
おすすめ情報