フッターコンテンツにスキップ
EXCEL ツール

How to Unhide Columns in Excel: A Complete Step-by-Step Guide

作成者: Iron Software

ExcelからMicrosoft Wordへの差し込み印刷は、個別に編集することなく、すぐにパーソナライズされた手紙、ラベル、またはメールを作成することができます。 アイデアは簡単です。受信者の詳細を含む1つのExcelスプレッドシートを維持し、差し込み印刷テンプレートに接続して、パーソナライズされたデータが表示されるべき場所に差し込みフィールドを挿入し、Wordがデータの各行ごとに個別にカスタマイズされたコピーを生成します。 手動で編集するのに数時間かかる作業が数分で完了し、すべての名前、住所、詳細がメールリストから正確に入力されます。

差し込み印刷プロセスには、成功するために必要な3つの文書が含まれています。データを含むExcelファイル、手紙またはラベルが存在するWordのメインドキュメント、および最後に生成されたマージ文書です。 成功する差し込み印刷には、整然としたスプレッドシートと正しくフォーマットされたデータに、差し込みフィールドが正しい位置に配置されたWordテンプレートが必要です。 郵便番号、通貨、日付などの特別なデータタイプは、差し込み印刷を開始する前にExcelで正しくフォーマットされている必要があり、すべてのデータはExcelワークブックの最初のシートにある必要があります。

この記事では、Excelスプレッドシートの準備、差し込み印刷タブでのデータソースとしての接続、差し込みフィールドの挿入、結果のプレビュー、マージの完了、およびメールメッセージの処理までのプロセスのすべてのステップを説明します。 IronXLが、Microsoft Officeがインストールされていなくても.NETでExcelファイルの作成とフォーマットをどのように行うかを説明するセクションが末尾にあります。

ステップ1:Excelスプレッドシートの準備

整然とした構造の良いExcelスプレッドシートは、信頼性のある差し込み印刷の基盤です。 Wordを開く前に、データと差し込みフィールドのマッチングは完全にExcelファイルの設定方法に依存します。

最初の行の列ヘッダー。 Excelスプレッドシートに、名前、住所、市、州、郵便番号など、含めたい項目ごとに1つの列があることを確認してください。 最初の行の列名はWordで使用可能な差し込みフィールドになりますので、それが一意で明確にラベル付けされ、上に空白行がないように配置されている必要があります。 最初の行に一意のヘッダーがあり、上に空白行がないことを確認してください。Wordは最初の行を使用して使用可能な差し込みフィールドを特定します。

各データを別々の列に使用します。 名前、姓、呼称を一緒にするのではなく、別々の列に格納します。 これにより、後で挨拶行や住所ブロックを作成する際に完全にコントロールできます。 Wordで差し込み印刷を実行する前に、Excelファイルに名前、姓、呼称、郵便番号、住所などの必要な情報がすべて含まれていることを確認してください。

郵便番号やZIPコードをテキストとしてフォーマットします。 差し込み印刷のためにExcelデータを準備する際に、ZIPコードや郵便番号の列がテキストとしてフォーマットされていることを確認し、先頭のゼロを失わないようにします。 02101のような郵便番号は、セルが数値としてフォーマットされている場合、先頭のゼロが黙って削除され、すべての結合された手紙で誤ったフォーマットされた出力になります。

すべてのデータを最初のシートに維持します。 成功する差し込み印刷のためには、すべてのデータがExcelワークブックの最初のシートにある必要があります。 ワークブックに複数のタブがある場合、Wordは最初のシートだけを読み取るため、ファイルを接続する前にすべてのデータエントリをシート1に移動してください。

Excelファイルを保存して閉じます。 Microsoft Wordにリンクする前に、差し込み印刷が正しく機能するためには、Excelファイルを保存して閉じる必要があります。 単語がデータをインポートしようとするときに、開いているExcelファイルが接続エラーを引き起こす可能性があります。

できるだけスペースがなく短く列ヘッダーを保ちなさい。 "FirstName"や"ZipCode"などの列名は、スペースや特殊文字を含む名前よりもフィールドの一致ダイアログボックスで問題を引き起こしにくいです。

How To Mail Merge From Excel To Word 1 related to ステップ1:Excelスプレッドシートの準備

ステップ2:Wordを開いて差し込み印刷を開始する

Excelファイルが準備できたら、Microsoft Wordを開いてメインドキュメントを作成または開きます。 既に使用したいテンプレートとしての既存文書がある場合は、空白のページから始めるのではなく、それを今すぐ開いてください。 これは、すべての受信者が受け取る手紙、ラベル、またはメールのテンプレートです。

ステップバイステップ差し込み印刷ウィザードの使用:

Microsoft Wordで差し込み印刷ウィザードを開始するには、配布物タブをクリックし、差し込み印刷を開始を選択してリストの下部のドロップダウン矢印からステップバイステップ差し込み印刷ウィザードを選びます。差し込み印刷ウィザードは、ユーザーが差し込み印刷文書を作成するのを手助けするステップバイステップガイドを提供し、プロセスを初心者がより簡単にナビゲートできるようにします。 画面の右側にパネルが開き、Wordが各段階を順に案内します。

差し込み印刷ウィザードを使用すると、ユーザーは作成したい文書のタイプを選択できます。たとえば手紙やラベル。そして次のステップに進んでデータソースに接続し、差し込みフィールドを挿入します。 このガイドでは、文書タイプとして手紙を選択してください。

配布物タブを直接使用する:

より経験豊富なユーザーは、差し込み印刷グループから強制的にスタータメールをクリックし、ウィザードを使用せずに文書タイプを直接選択することができます。 どちらの方法でも同じ結果が得られます。

How To Mail Merge From Excel To Word 2 related to 配布物タブを直接使用する:

ステップ3:データソースとしてExcelファイルを接続する

文書タイプが設定されると、次のステップは受信者の詳細を取得する場所をWordが知るために、Excelファイルを接続することです。

  1. 配布物タブで、差し込み印刷開始グループの受信者を選択をクリックします。
  2. ドロップダウン矢印から、既存リストを使用を選択します。 差し込み印刷のためにExcelスプレッドシートをWord文書に接続するには、配布物タブの受信者を選択オプションで既存のリストを使用を選択する必要があります。
  3. ファイルブラウザが開きます。 Excelファイルを含むフォルダに移動し、選択して開くをクリックします。
  4. ダイアログボックスが開き、ワークブックのシートが表示されます。 データを含むターゲットシートのSheet1を選択し、OKをクリックします。

Wordは今、既存のリストとしてあなたのExcelデータに接続されています。既存のリストブラウズオプションを使用すると、コンピュータ内の任意の場所から保存されたxlsxファイルを検索して開くことができます。 この時点で、Wordはワークブックの最初のシートから情報をインポートし始め、すべての列ヘッダーが差し込みフィールドとして使用可能になっています。

WordがExcelファイルを正しく読み取れない場合、ファイルが閉じられ、xlsx形式で保存され、すべての列ヘッダーがSheet 1の最初の行にあり、その上に空白行がないことを確認してください。

一度接続されたら、配布物タブで受信者リストを編集するを選択をクリックして、差し込み印刷受信者パネルを開くことができます。 スプレッドシートの各行が個別のエントリとして表示されます。 特定の受信者を選択しない、リストを並べ替える、または統合される行をフィルタするために使用できます。 データエントリがすべて正しくWordに読み込まれていることを確認して、進む前に受信者リストを慎重に確認してください。

How To Mail Merge From Excel To Word 3 related to ステップ3:データソースとしてExcelファイルを接続する

ステップ4:文書に差し込みフィールドを挿入する

データソースが接続されたら、カスタマイズされたデータを表示したい任意の場所に、差し込み印刷フィールドをWord文書内に配置することができます。

アドレスブロックを使用する:

アドレスブロックは、名前、会社、郵送先住所を1つのフィールドに組み合わせたショートカットです。 配布物タブのフィールド挿入グループアドレスブロックをクリックします。 名前と住所がどのようにフォーマットされるかを設定できるダイアログボックスが表示されます。 一致フィールドダイアログボックスのフィールドが、あなたの列名と自動的に一致しない場合は、フィールドの一致をクリックします。 一致フィールドダイアログボックスでは、列ヘッダーをWordが内部で使用しているフィールド名に手動でマッピングし、スプレッドシートの一致に関する問題を解決します。

個別の差し込みフィールドを使用する:

レイアウトおよびフォーマットに完全にコントロールしたい場合は、差し込みフィールドを1つずつ挿入します。フィールドを置きたい場所にカーソルを置いて、フィールド挿入グループ差し込みフィールドの挿入をクリックします。 ドロップダウンは、あなたのExcelスプレッドシートからすべての列ヘッダーをリストします。 フィールド名をクリックして、それをカーソルの位置に挿入します。 挿入する一般的なフィールドには以下が含まれます:

  • "お名前" "FirstName" "LastName" は住所ブロックの冒頭
  • "Company"がその下の行に
  • "Address"に続く"City"、"State"、そして"ZipCode"が次の行に
  • "Dear "Salutation" "LastName"," のような挨拶行

挨拶行を使用する:

配布物タブで挨拶行を選択をクリックして、事前にフォーマットされた挨拶を挿入します。 ダイアログボックスは、挨拶行の形式(Mr. Smith様、James様など)を選択し、名前フィールドが空の受信者のためのフォールバックを設定することができます。

関連する差し込みフィールド間に手動でスペースを追加してください。 フィールド間のスペースは自動で追加されないため、""FirstName""LastName""は、ふたつのフィールド間にスペース文字がない状態で"JamesCarter"と表示されます。

How To Mail Merge From Excel To Word 4 related to ステップ4:文書に差し込みフィールドを挿入する

ステップ5:マージを完了する前に結果をプレビューする

文書に差し込みフィールドを挿入した後、配布物タブで結果をプレビューを選択して、マージされたデータがどのように表示されるかを確認することができます。

配布物タブの結果をプレビューをクリックします。 Wordはすべての差し込みフィールドをあなたのExcelスプレッドシートの最初の行から対応するデータに置き換えます。 プレビュー結果グループの左および右の矢印を使用してレコード間を移動し、各受信者のデータが正しく表示されていることを確認します。 これにより、完全なマージを確定する前に受信者の詳細を正しく確認することができます。

特に以下を確認します:

  • 挨拶行が自然に読める("Mr. Carter様、"ではなく"Mr. Carter 様、")
  • 住所ブロックがすべての行で正しくフォーマットされていること、特に会社名が長い場合も含めて
  • 郵便番号や郵便番号が先頭のゼロが適切に表示されること
  • ページ上部の現在のレコードカウンターがあなたの予想通りであること

メールメッセージまたは手紙に差し込みフィールドを挿入した後、結果をプレビューして、コンテンツが正しく表示されることを確認してから、マージプロセスを完了できます。 左と右の矢印を使用して、最初だけでなく、いくつかのレコードをスクロールします。

How To Mail Merge From Excel To Word 5 related to ステップ5:マージを完了する前に結果をプレビュー...

ステップ6:差し込み印刷を完了し、文書を出力する

プレビューが確認できたら、マージを実行して最終出力を生成する準備が整います。

新しい文書へのマージ(推奨):

配布物タブ終了とマージボタンをクリックし、ドロップダウン矢印から個々の文書の編集を選択します。 ダイアログボックスが、すべてのレコード、現在のレコード、または範囲をマージするかどうかを尋ねます。 すべてを選択しOKをクリックします。 Wordは、すべての個々の文書を個別ページとして含む新しい文書を生成し、各受信者ごとに1ページずつあります。 これは、印刷または送信する前にマージされた文書を見直すことができるため、最も安全なアプローチです。

レビューが終了したら保存を選択して、マージされた文書を保持してください。 テンプレートとデータソースと並べて保存するために、ファイル> 名前を付けて保存を使用して名前を変更し、保存することもできます。

直接印刷:

終了とマージ > 文書を印刷をクリックして、マージ結果を中間ファイルを作成せずに直接プリンタに送信します。ドキュメントを即座に印刷する必要があり、個別の文書を確認またはアーカイブする必要がない場合に便利です。

How To Mail Merge From Excel To Word 6 related to ステップ6:差し込み印刷を完了し、文書を出力する How To Mail Merge From Excel To Word 7 related to ステップ6:差し込み印刷を完了し、文書を出力する

ステップ7:郵便ラベルを作成する

同じ差し込み印刷プロセスは、Excelスプレッドシートをデータソースとして使用して郵便ラベルを作成するためにも適用され、手紙に使用されたのと同じ手順をたどります。

  1. 配布物タブ差し込み印刷開始 > ラベルをクリックします。
  2. ラベルオプションダイアログボックスで、物理的なラベルシートと一致するように、ラベルベンダーと製品番号を選択します。
  3. 受信者を選択 > 既存リストを使用をクリックして、同じExcelファイルがリンクします。
  4. 差し込みフィールドの挿入をクリックして、ラベルに住所フィールドを配置します。 個別のラベルエリア内に"FirstName"、"LastName"、"Address"、"City"、"State"、および"ZipCode"を別々の行に追加します。
  5. ラベルを更新をクリックして、レイアウトをページ上のすべてのラベルにコピーします。
  6. プレビューし、次に終了してマージして個別のラベルを作成し、印刷の準備をします。

ステップ8:差し込み印刷でメールメッセージを送信する

差し込み印刷は、Microsoft Outlookを介してWordから直接パーソナライズされたメールメッセージを送信することもできます。

差し込み印刷を通じてメールを送信するには、Outlookが開かれ、デフォルトのメールプログラムとして設定されている必要があります。 これは従来のOutlookと新しいOutlookの両方に適用されます。 開始する前にこれが設定されていることを確認してください。

メールマージを設定する際に、受信者リストにメールアドレスの列が含まれていて、それが各受信者に個別のメッセージを送信するために使用されることを確認してください。 デモスプレッドシートでは、これはEmailAddress列です。

  1. 配布物タブ差し込み印刷開始 > Eメールメッセージをクリックします。
  2. Wordドキュメントでメールの本文を書き、手紙と同じように挨拶行や任意のパーソナライズされたコンテンツのために差し込みフィールドを挿入します。
  3. 受信者を選択 > 既存リストを使用をクリックして、Excelファイルを接続します。
  4. 差し込み印刷を使用してメールメッセージをパーソナライズするには、あなたのメインドキュメントに名前や住所などの差し込みフィールドを挿入し、それがあなたの受信者リストからの対応するデータに置き換えられます。
  5. 終了とマージ > メールメッセージを送信をクリックします。
  6. ダイアログボックスで、"宛て先"フィールドをメールアドレス列(EmailAddress)に設定し、件名行を追加し、最も互換性のあるメール形式としてHTMLを選択します。
  7. OKをクリックします。 Wordは、Outlookを介して各受信者に1つのパーソナライズされたメールを送信します。 Outlookの連絡先は、Excelシートの代わりにデータソースとして使用することもでき、連絡先リストがそこに保存されている場合があります。

メールマージが完了した後、メッセージが送信されたかどうかを確認するために、Outlookの送信済みアイテムフォルダを確認してください。 リスト内の各メールは、各受信者ごとに個別の送信されたメッセージとして表示されます。

How To Mail Merge From Excel To Word 8 related to ステップ8:差し込み印刷でメールメッセージを送信...

よくある問題とトラブルシューティング

WordがExcelファイルを見つけることができないか、接続時にエラーを返す場合

Excelファイルが保存され、完全に閉じられていることを確認し、Wordにリンクを試みます。 保存されていない変更がある開いているワークブックは接続を阻害する可能性があります。 ファイルが.xlsではなく.xlsxとして保存されていることも確認してください。

郵便番号や郵便番号の先頭ゼロが欠落している場合

これは、ExcelのZipCode列が数値としてフォーマットされている場合に発生します。 スプレッドシートを開き、ZipCode列を選択し、それをテキストとしてフォーマットし、先頭のゼロを失った値を再入力します。 ExcelファイルはWordに再接続する前に再び保存して閉じる必要があります。

差し込みフィールドがデータの代わりにフィールドコードを表示する(例:{MERGEFIELD FirstName})場合

Wordでフィールドコード表示とフィールド結果表示を切り替えるためにAlt + F9を押します。 これは表示設定であり、マージ自体には影響を与えません。

一致フィールドダイアログボックスがマッピングされていないフィールドを表示する場合

これは、列名がWordが住所ブロックのために期待する名前と一致しない場合に発生します。 配布物タブでフィールドの一致をクリックし、各列名を対応するWordフィールドに手動でマッピングします。 たとえば、Wordがそれを自動的に認識しない場合、"ZipCode"列を"郵便番号"フィールドにマップします。

一部の受信者がマージ出力から欠落している場合

配布物タブで受信者リストを編集するを選択をクリックして、マージ受信者パネルを開きます。 任意の行が誤って選択解除されていないか確認します。 また、Excelシートのデータ範囲内に空白行がないことも確認してください。これらは、Wordがリストの終わりに到達する前にデータエントリを読み取らなくなる原因となります。

メール送信が行われたが受信者がメールを受け取らない場合

マージを実行する前にOutlookが開かれていることとデフォルトのメールプログラムとして設定されていることを確認してください。 Outlookの送信済みアイテムフォルダを確認し、メッセージが送信されたかどうかを確認します。 新しいOutlookを使用する場合、一部のバージョンは従来のOutlookと比較してメールマージのサポートが限られていることに注意してください。

迅速リファレンス:ExcelからWordへの差し込み印刷

タスク どこにそれを見つけます ノート
差し込み印刷を開始 配布物タブ > 差し込み印刷開始 手紙、ラベル、またはEメールメッセージを選ぶ
Excelファイルを接続する 受信者を選択 > 既存リストを使用 ファイルは保存され閉じている必要がある
住所ブロックを追加する フィールド挿入グループ > アドレスブロック 列マッピングには一致フィールドを使用
個々のフィールドを挿入する フィールド挿入グループ > 差し込みフィールドを挿入 差し込みフィールド名ごとに1フィールド
挨拶行を追加する 配布物タブ > 挨拶行 ダイア로그で挨拶行の形式を選ぶ
マージをプレビューする 配布物タブ > 結果をプレビュー 左と右の矢印を使用してレコードを確認する
ファイルへのマージを完了する 終了とマージ > 個々の文書を編集 すべてのページを含む新しい文書を作成
文書を印刷する 終了とマージ > 文書を印刷 プリンタに直接送信する
メールメッセージを送信する 終了とマージ > メールメッセージを送信 デフォルトのメールプログラムとしてOutlookが必要
受信者リストを編集する 受信者リストを編集するを選択 行をフィルター、並べ替え、または選択解除する

開発者向け:IronXLを使用したExcel差し込み印刷データの構築と検証

アプリケーションが差し込み印刷プロセスにフィードするExcelデータソースを生成する場合、そのファイルの品質とフォーマットが直接的にマージが成功するかどうかを決定します。 IronXLは、C#開発者に.NETでExcelファイルをプログラムで作成、読み取り、フォーマットさせるライブラリで、サーバーや開発者マシンにMicrosoft Officeをインストールしなくてもできます。

差し込み印刷データファイルの最も一般的な失敗点は、ヘッダーが欠落している、結合されているセル、誤って入力された郵便番号、およびデータ範囲内の空白行です。 IronXLは、Wordに渡される前にすべてのセル、列の形式、およびデータ型を完全にプログラムコントロールすることができ、これらの問題を根本的に排除します。

最初の行にすべての列ヘッダーがあり、ZipCode列がテキストとしてフォーマットされているIronXLを使用して、正しい構造がされたメーリングリストExcelファイルを作成する方法は次のとおりです:

using IronXL;

// Create a new workbook - data must be on the first sheet for mail merge
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.DefaultWorkSheet;
workSheet.Name = "Sheet1";

// Set column headers in row 1 - these become the merge field names in Word
string[] headers = {
    "FirstName", "LastName", "Salutation", "Company",
    "Address", "City", "State", "ZipCode", "EmailAddress"
};

for (int i = 0; i < headers.Length; i++)
{
    var headerCell = workSheet.GetCell(0, i);
    headerCell.Value = headers[i];
    headerCell.Style.Font.Bold = true;
}

// Add recipient data rows
var recipients = new[]
{
    new[] { "James",  "Carter",   "Mr.", "Carter & Associates",   "142 Oak Lane",     "Chicago",  "IL", "60601", "j.carter@carterassoc.com" },
    new[] { "Sarah",  "Mitchell", "Ms.", "Blue Ridge Consulting", "890 Maple Avenue", "Austin",   "TX", "78701", "s.mitchell@blueridge.com" },
    new[] { "Robert", "Nguyen",   "Mr.", "Nguyen Legal Group",    "55 Harbor View",   "Seattle",  "WA", "98101", "r.nguyen@nguyenlegal.com"  },
};

for (int row = 0; row < recipients.Length; row++)
{
    for (int col = 0; col < recipients[row].Length; col++)
    {
        var cell = workSheet.GetCell(row + 1, col);
        cell.Value = recipients[row][col];

        // Format ZipCode column (index 7) as text to preserve leading zeros
        // This prevents postal codes like "02101" from dropping to "2101"
        if (col == 7)
        {
            cell.FormatString = "@"; // @ = text format in Excel
        }
    }
}

// Save - file must be closed before Word can link to it for mail merge
workBook.SaveAs("mailing-list.xlsx");
using IronXL;

// Create a new workbook - data must be on the first sheet for mail merge
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.DefaultWorkSheet;
workSheet.Name = "Sheet1";

// Set column headers in row 1 - these become the merge field names in Word
string[] headers = {
    "FirstName", "LastName", "Salutation", "Company",
    "Address", "City", "State", "ZipCode", "EmailAddress"
};

for (int i = 0; i < headers.Length; i++)
{
    var headerCell = workSheet.GetCell(0, i);
    headerCell.Value = headers[i];
    headerCell.Style.Font.Bold = true;
}

// Add recipient data rows
var recipients = new[]
{
    new[] { "James",  "Carter",   "Mr.", "Carter & Associates",   "142 Oak Lane",     "Chicago",  "IL", "60601", "j.carter@carterassoc.com" },
    new[] { "Sarah",  "Mitchell", "Ms.", "Blue Ridge Consulting", "890 Maple Avenue", "Austin",   "TX", "78701", "s.mitchell@blueridge.com" },
    new[] { "Robert", "Nguyen",   "Mr.", "Nguyen Legal Group",    "55 Harbor View",   "Seattle",  "WA", "98101", "r.nguyen@nguyenlegal.com"  },
};

for (int row = 0; row < recipients.Length; row++)
{
    for (int col = 0; col < recipients[row].Length; col++)
    {
        var cell = workSheet.GetCell(row + 1, col);
        cell.Value = recipients[row][col];

        // Format ZipCode column (index 7) as text to preserve leading zeros
        // This prevents postal codes like "02101" from dropping to "2101"
        if (col == 7)
        {
            cell.FormatString = "@"; // @ = text format in Excel
        }
    }
}

// Save - file must be closed before Word can link to it for mail merge
workBook.SaveAs("mailing-list.xlsx");
Imports IronXL

' Create a new workbook - data must be on the first sheet for mail merge
Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
workSheet.Name = "Sheet1"

' Set column headers in row 1 - these become the merge field names in Word
Dim headers As String() = {
    "FirstName", "LastName", "Salutation", "Company",
    "Address", "City", "State", "ZipCode", "EmailAddress"
}

For i As Integer = 0 To headers.Length - 1
    Dim headerCell = workSheet.GetCell(0, i)
    headerCell.Value = headers(i)
    headerCell.Style.Font.Bold = True
Next

' Add recipient data rows
Dim recipients = {
    New String() { "James",  "Carter",   "Mr.", "Carter & Associates",   "142 Oak Lane",     "Chicago",  "IL", "60601", "j.carter@carterassoc.com" },
    New String() { "Sarah",  "Mitchell", "Ms.", "Blue Ridge Consulting", "890 Maple Avenue", "Austin",   "TX", "78701", "s.mitchell@blueridge.com" },
    New String() { "Robert", "Nguyen",   "Mr.", "Nguyen Legal Group",    "55 Harbor View",   "Seattle",  "WA", "98101", "r.nguyen@nguyenlegal.com"  }
}

For row As Integer = 0 To recipients.Length - 1
    For col As Integer = 0 To recipients(row).Length - 1
        Dim cell = workSheet.GetCell(row + 1, col)
        cell.Value = recipients(row)(col)

        ' Format ZipCode column (index 7) as text to preserve leading zeros
        ' This prevents postal codes like "02101" from dropping to "2101"
        If col = 7 Then
            cell.FormatString = "@" ' @ = text format in Excel
        End If
    Next
Next

' Save - file must be closed before Word can link to it for mail merge
workBook.SaveAs("mailing-list.xlsx")
$vbLabelText   $csharpLabel

差し込み印刷ワークフローに接続する前に、既存のExcelファイルを読むおよび検証するには、IronXLを使用して必要な構造を簡単に確認することができます:

using IronXL;

WorkBook workBook = WorkBook.Load("mailing-list.xlsx");

// Always read from the first sheet for mail merge compatibility
WorkSheet firstSheet = workBook.DefaultWorkSheet;

// Verify the first row contains column headers, not data
string firstHeader = firstSheet["A1"].StringValue;
Console.WriteLine($"First column header: {firstHeader}");

// Read all recipient data rows
foreach (var row in firstSheet.Rows.Skip(1)) // Skip header row
{
    string firstName = row[0].StringValue;
    string lastName  = row[1].StringValue;
    string zipCode   = row[7].StringValue; // Read as string to preserve leading zeros
    Console.WriteLine($"{firstName} {lastName} - ZIP: {zipCode}");
}
using IronXL;

WorkBook workBook = WorkBook.Load("mailing-list.xlsx");

// Always read from the first sheet for mail merge compatibility
WorkSheet firstSheet = workBook.DefaultWorkSheet;

// Verify the first row contains column headers, not data
string firstHeader = firstSheet["A1"].StringValue;
Console.WriteLine($"First column header: {firstHeader}");

// Read all recipient data rows
foreach (var row in firstSheet.Rows.Skip(1)) // Skip header row
{
    string firstName = row[0].StringValue;
    string lastName  = row[1].StringValue;
    string zipCode   = row[7].StringValue; // Read as string to preserve leading zeros
    Console.WriteLine($"{firstName} {lastName} - ZIP: {zipCode}");
}
Imports IronXL

Dim workBook As WorkBook = WorkBook.Load("mailing-list.xlsx")

' Always read from the first sheet for mail merge compatibility
Dim firstSheet As WorkSheet = workBook.DefaultWorkSheet

' Verify the first row contains column headers, not data
Dim firstHeader As String = firstSheet("A1").StringValue
Console.WriteLine($"First column header: {firstHeader}")

' Read all recipient data rows
For Each row In firstSheet.Rows.Skip(1) ' Skip header row
    Dim firstName As String = row(0).StringValue
    Dim lastName As String = row(1).StringValue
    Dim zipCode As String = row(7).StringValue ' Read as string to preserve leading zeros
    Console.WriteLine($"{firstName} {lastName} - ZIP: {zipCode}")
Next
$vbLabelText   $csharpLabel

IronXLは.NET 6以降で動作し、Windows、Linux、macOS、Docker、およびAzureと完全に互換性があり、サーバー側のアプリケーション、スケジュールジョブ、またはWeb APIから差し込み印刷データファイルを生成するのに適しており、Microsoft Officeへの依存は必要ありません。

始め方: Install-Package IronXL.ExcelでNuGetを介してインストールします。 30日間の無料トライアルが利用可能で、クレジットカードは不要です。

さらに読む:

まとめ

Excelスプレッドシートからのワード差し込み印刷を実行することは、大規模にパーソナライズされた手紙、郵便ラベル、およびメールメッセージを生成する最も信頼性のある方法のひとつです。 プロセスは、最初のシートに正しくフォーマットされたデータを持つきちんとしたメーリングリストをExcelで構築し、配布物タブを通してそのファイルをWordに接続して既存のリストを使用すること、そして各受信者データが表示されるべき場所に差し込みフィールドを正確に配置することに要約されます。

データソースが接続されると、Wordのフィールド挿入グループとアドレスブロックツールが本格的な作業を行います。 終了する前に左および右の矢印を使用して結果をプレビューして、形式の問題、不整列なフィールド、または欠落している郵便番号を受信者に届く前に見つけます。 差し込み印刷が完了すると、将来の使用のために接続を維持してデータソースに再接続することなくマージされた文書を保存することを選択できます。

アプリケーションが差し込み印刷ワークフローにフィードするExcelデータを生成または変換する開発チームの場合、IronXLは、Officeへの依存せずに正しく構造化され、適切にフォーマットされたスプレッドシートファイルを.NETで作成するためのクリーンなAPIを提供します。 無料トライアルから始めて、自分の環境でこの機能セット全体を探索してください。

特定の差し込み印刷シナリオや予想通りに動作しなかったステップに関する質問がありますか? 以下にコメントを残すか、Excel自動化、データのフォーマット、およびドキュメント生成に関するさらなる支援を得るためにIron Softwareブログをご覧ください。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね