• セレクションを使用して新しいワークブックを作成します。

  • ワークブックを郵送する前に保存してください。

  • 送信後、ハードディスクからファイルを削除します。

選択範囲内の非表示の行と列を再表示します。選択範囲外の空のセルはすべて非表示になります(スクリーンショットを参照)

このように、選択は常にシートの一番上にあります

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