- ベストアンサー
VBA+BASP21 メール送信
BASP21を利用しエクセルシートのある範囲部分をbodyとしてメール送信をしたいのですが、以下のように範囲指定はできませんでしょうか?以下でトライしたら実行できないのですがCells(1,1)のようにセル1個ならメール送信できます。何か方法ありませんか?よろしくお願いします。 mailBody = Worksheets(2).Range("A1:N30")
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
mailBodyは"テキスト"ですから、エクセルの範囲は使えませんよ。 範囲をループで回して結合mailBodyに結合するればどうですか?
その他の回答 (1)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 Excelのシートのレイアウトをそのまま出す方法は、.Value プロパティをいくらつないでも、崩れてしまいますから、一旦、PRN型で出力してあげればよいのではないでしょうか。大きさもそれほどではないので、ファイルシステム・オブジェクトで、ReadAll で読めるように考えました。 Sub TextCutting() Dim mPath As String Dim fn As String Dim acSh As Worksheet Dim mBuf As String mPath = ActiveWorkbook.Path & "\" fn = ActiveWorkbook.Name fn = Mid(fn, 1, InStrRev(fn, ".") - 1) Set acSh = Worksheets(1) ActiveSheet.Copy With ActiveSheet .Cells.Clear acSh.Range("A1:N30").Copy .Range("A1:N30").PasteSpecial (xlPasteValues) .SaveAs mPath & fn & ".txt", xlTextPrinter ActiveWorkbook.Close False End With With CreateObject("Scripting.FileSystemObject") mBuf = .OpenTextFile(mPath & fn & ".txt").ReadAll Kill mPath & fn & ".txt" End With 'MsgBox mBuf 'mBuf に蓄えられます。 End Sub