Microsoft ExcelでVBAを使用して選択を郵送
-
セレクションを使用して新しいワークブックを作成します。
-
ワークブックを郵送する前に保存してください。
-
送信後、ハードディスクからファイルを削除します。
選択範囲内の非表示の行と列を再表示します。選択範囲外の空のセルはすべて非表示になります(スクリーンショットを参照)
このように、選択は常にシートの一番上にあります
Sub Mail_Selection() Dim strDate As String Dim Addr As String Dim rng As Range If ActiveWindow.SelectedSheets.Count > 1 Or Selection.Areas.Count > 1 Then Exit Sub Application.ScreenUpdating = False Addr = Selection.Address ActiveSheet.Copy ActiveSheet.Pictures.Delete With Cells .EntireColumn.Hidden = False .EntireRow.Hidden = False End With Range(Addr).Select Set rng = Selection Application.GoTo rng, True With rng.EntireColumn .Hidden = True rng(1).EntireRow.SpecialCells(xlVisible).EntireColumn.Clear rng(1).EntireRow.SpecialCells(xlVisible).EntireColumn.Hidden = True .Hidden = False End With With rng.EntireRow .Hidden = True rng(1).EntireColumn.SpecialCells(xlVisible).EntireRow.Clear rng(1).EntireColumn.SpecialCells(xlVisible).EntireRow.Hidden = True .Hidden = False End With Application.GoTo rng, True rng.Cells(1).Select strDate = Format(Date, "dd-mm-yy") & " " & Format(Time, "h-mm-ss") ActiveWorkbook.SaveAs "Part of " & ThisWorkbook.Name _ & " " & strDate & ".xls" ActiveWorkbook.SendMail "[email protected]", _ "This is the Subject line" ActiveWorkbook.ChangeFileAccess xlReadOnly Kill ActiveWorkbook.FullName ActiveWorkbook.Close False Application.ScreenUpdating = True End Sub