ドイツ語は、ワークブック全体を送信せずに、ワークブック内の1つのワークシートを電子メールの添付ファイルとして送信する方法があるかどうかを尋ねました。簡単に言うと、ワークシート自体は「エンティティ」として存在することはできません。

あなたが電子メールに添付できること。ファイルは電子メールの添付ファイルとしてのみ送信できます。つまり、送信するにはワークブックファイルが必要です。

もちろん、1つのワークシートからワークブックを作成するのは簡単です。これをたまに行う必要がある場合、最も簡単な方法は次の手順に従うことです。

。電子メールで送信するワークシートのタブを右クリックします。

。表示されるコンテキストメニューから、[移動]または[コピー]を選択します。 Excelは、[移動またはコピー]ダイアログボックスを表示します。 (図1を参照)

。 [To Book]ドロップダウンリストを使用して、[NewBook]を選択します。

。 [コピーを作成する]チェックボックスがオンになっていることを確認します。

。 [OK]をクリックします。

この時点で、1つのワークシート(送信するワークシートのコピー)を含む新しいワークブックが表示されます。このワークブックを保存して電子メールで送信すると、やりたいことが完了します。電子メールで送信されたら、ワークシートは元のワークブックにも残っているため、システムからワークブックを削除できます。

現在のワークシートを定期的に他の人に電子メールで送信する必要がある場合は、そのタスクを実行するマクロを作成することをお勧めします。作成するマクロは、使用している電子メールプログラムによって異なります。このため、このヒントで包括的なマクロベースの回答を提供することはできません。ただし、メールプログラムとしてOutlookを使用してワークシートを電子メールで送信できるマクロの例を提供すると役立つ場合があります。

Sub EmailWithOutlook()

Dim oApp As Object     Dim oMail As Object     Dim WB As Workbook     Dim FileName As String     Dim wSht As Worksheet     Dim shtName As String

Application.ScreenUpdating = False

' Make a copy of the active worksheet     ' and save it to a temporary file     ActiveSheet.Copy     Set WB = ActiveWorkbook

FileName = WB.Worksheets(1).Name     On Error Resume Next     Kill "C:\" & FileName     On Error GoTo 0     WB.SaveAs FileName:="C:\" & FileName

'Create and show the Outlook mail item     Set oApp = CreateObject("Outlook.Application")

Set oMail = oApp.CreateItem(0)

With oMail         'Uncomment the line below to hard code a recipient         '.To = "[email protected]"

'Uncomment the line below to hard code a subject         '.Subject = "Subject Line"

'Uncomment the lines below to hard code a body         '.body = "Dear John" & vbCrLf & vbCrLf & _           '"Here is the file you asked for"

.Attachments.Add WB.FullName         .Display     End With

'Delete the temporary file     WB.ChangeFileAccess Mode:=xlReadOnly     Kill WB.FullName     WB.Close SaveChanges:=False

'Restore screen updating and release Outlook     Application.ScreenUpdating = True     Set oMail = Nothing     Set oApp = Nothing End Sub

マクロは、前の手順で実行されたことを効果的に実行することに注意してください。

ワークシートを新しいワークブックにコピーしてから、そのワークブックに電子メールを送信します。次に、ブックを削除して、通常のExcelの使用に戻します。

マクロは、一時的なブック(電子メールで送信されるブック)をC:ドライブに保存します。ブックを別の場所に保存したい場合(またはシステムの制限によりファイルをシステムのルートディレクトリに保存できない場合)は、C:ドライブを参照する2行のコードの場所を変更するだけです。

このヒントで詳しく説明するアプローチを使用することには、潜在的な欠点が1つあります。ワークシートのコピーを新しいブックに作成すると、Excelは、コピーされたワークシートにある可能性のあるいくつかの参照を使用して、面白いことを実行できます。たとえば、元のブックからSheet1をコピーして電子メールで送信するとします。ただし、Sheet1には、数式にSheet2とSheet3のセルへの参照がいくつか含まれています。 Sheet1のコピーを新しいブックに作成すると、Excelはそれらの参照を元のブックのシートに戻します。コピーしたSheet1は他の人に電子メールで送信できますが、その人がそれを開こうとすると、元のブックが参照されていないため、参照が正しく機能しなくなります。

これには3つの解決策があります。 1つ目は、明らかに、新しいワークブックの1つのワークシートではなく、受信者が必要とする可能性のあるすべてのワークシートを電子メールで送信することです。 2番目の解決策は、コピーアンドペーストの手法を使用して、新しいブックに値を貼り付けることです。

最後に、元のワークシートをコピーしてから、そのコピーですべての外部参照を検索して削除できます。

さまざまなプログラムを使用してワークシートを電子メールで送信する方法についてのより詳細な議論を探している場合は、次のWebページにアクセスすることをお勧めします。

http://www.rondebruin.nl/win/section1.htm

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(8508)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。