By グウェンテイラー 29年2021月XNUMX日月曜日
投稿: Excel
返信 0
いいね 0
ビュー 2.8K
投票 0
こんにちは私はあなたのコードを使用してExcelの範囲を電子メールの添付ファイルとして送信していますが、範囲をキャンセルすると実行時エラーが発生します。 これを防ぐために追加できるコードやメッセージボックスはありますか? 以下のコードに感謝します。

Sub SendRange()
文字列としての薄暗いxFile
薄暗いxFormatと同じくらい
ワークブックとしての薄暗いWb
ワークブックとしての薄暗いWb2
ワークシートとして薄暗い
文字列としての薄暗いFilePath
文字列としての薄暗いファイル名
OutlookAppをオブジェクトとして薄暗くする
OutlookMailをオブジェクトとして薄暗くする
範囲として薄暗いWorkRng
xTitleId="例"
Set WorkRng = アプリケーション.選択
WorkRng = Application.InputBox( "Range"、xTitleId、WorkRng.Address、Type:= 8)を設定します

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Wb=Application.ActiveWorkbookに設定します
Wb.ワークシート.追加
Ws=Application.ActiveSheetに設定します
WorkRng.Copy Ws.Cells(1、1)
Ws.コピー
Wb2=Application.ActiveWorkbookに設定します
CaseWb.FileFormatを選択します
ケースxlOpenXMLWorkbook:
    xFile = ".xlsx"
    xFormat = xlOpenXMLWorkbook
ケースxlOpenXMLWorkbookMacroEnabled:
    Wb2.HasVBProjectの場合
        xFile = ".xlsm"
        xFormat = xlOpenXMLWorkbookMacroEnabled
    他
        xFile = ".xlsx"
        xFormat = xlOpenXMLWorkbook
    終了する場合
ケースExcel8:
    xFile = ".xls"
    xFormat = Excel8
ケースxlExcel12:
    xFile = ".xlsb"
    xFormat = xlExcel12
選択して終了
FilePath = Environ $( "temp")& "\"
FileName = Wb.Name&Format(Now、 "dd-mmm-yy h-mm-ss")
OutlookApp = CreateObject( "Outlook.Application")を設定します
OutlookMail = OutlookApp.CreateItem(0)に設定します
Wb2.SaveAs FilePath&FileName&xFile、FileFormat:= xFormat
OutlookMailを使用
    .To = "gtest@email.com"
    .CC = ""
    .BCC = ""
    .Subject="テスト"
    .Body="こんにちは。"
    .Attachments.Add Wb2.FullName
    。送信
最後に
Wb2.閉じる
FilePath&FileName&xFileを強制終了します
OutlookMail=Nothingを設定します
OutlookApp=Nothingを設定します
Ws.削除
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Subの
 
投稿全体を見る