IRONWORDの使用方法 IronWordを使用してC#で記入可能なフォームテンプレートを作成する方法 Jordi Bardia 更新日:2026年3月1日 IronWord をダウンロード NuGet ダウンロード 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る IronWordライブラリを使用して、プレースホルダーテキストフィールドを含むテーブルベースのレイアウトを構築することで、C#で入力可能なWordフォームテンプレートを作成します。 その後、プログラムによって実際のデータを入力し、必要に応じてPDF形式に変換することができます。 構造化されたフォームを通して情報を収集することは、人事部門が求人応募を処理する場合から、医療機関が患者情報を収集する場合まで、あらゆる業界におけるデータ収集に不可欠です。 入力可能なフォームテンプレートをプログラムで作成することで、時間を節約し、 .NETアプリケーション内のWord文書全体で一貫性を確保できます。 このチュートリアルでは、C#とIronWord(Microsoft Officeに依存せずにDOCXファイルを生成・編集するための.NET Wordライブラリ)を使用して、Word文書に記入可能なフォームテンプレートを作成する方法を示します。 最後には、データ入力が可能な完全な求人応募フォームのテンプレートが完成し、Word文書をPDF形式に変換して配布することもできます。 Word文書で記入可能なフォーム テンプレートとは 記入可能なフォームテンプレートは、ユーザーがテキストやその他のデータを入力できるように指定された領域で設計された構造化されたWord文書です。 これらのテンプレートは、テーブルとプレースホルダーテキストフィールドを使用して整理されたレイアウトを作成し、プログラムによって、またはインタラクティブなフォームを介して手動で実際のデータを入力できます。 .NETアプリケーションを扱う場合、 IronWordのようなライブラリを、PDF生成用のIronPDFなどのIron Software製品と組み合わせて使用することで、完全なドキュメント自動化ソリューションを構築できます。 Microsoft Wordは、プレーンテキストコンテンツコントロール、リッチテキストコンテンツコントロール、チェックボックスコンテンツコントロール、ドロップダウンリストコンテンツコントロール、コンボボックスコンテンツコントロール、日付ピッカーコンテンツコントロール、画像コンテンツコントロールなど、インタラクティブフィールド用のさまざまなコンテンツコントロールをサポートしています。 ネイティブのフォームフィールドはインタラクティブなフォームを作成するが、プレースホルダーテキストを使用したテンプレートベースのアプローチは、Webアプリケーションやサーバー環境におけるドキュメント生成において、より高い柔軟性を提供する。 この柔軟性は、Word文書に加えてPDFの電子署名やその他の文書形式を扱うEnterpriseワークフローを構築する際に特に役立ちます。 一般的な用途は以下のとおりです: 記入欄のある求人申込書や入社フォーム データ収集のための顧客登録とフィードバック調査 テキストボックスとチェックボックスコントロールを備えた医療情報入力および同意書 可変テキストフィールド付き契約書テンプレート PDF文書にエクスポートできる注文書と請求書 これらのフォームは構造化されているため、自動処理に最適です。 テンプレートベースのフォーム生成機能を使用すると、単一のマスターテンプレートから数十または数百もの一貫性のあるドキュメントを生成できるため、エラーを減らし、反復的な手作業をなくすことができます。 このアプローチは、単純な単一セクションのフォームから、条件付きロジック、検証ルール、分岐構造を備えた複数ページの文書まで、あらゆる規模の文書に対応できます。 NuGet経由でIronWordをインストールするにはどうすればよいですか? IronWordを使い始めるには、新しい.NETコンソールアプリケーションを作成し、パッケージをインストールしてください。 IronWordは、 .NET CLIを使用してIronWordNuGetインストールできます。 dotnet new console -n WordFormTemplate cd WordFormTemplate dotnet add package IronWord dotnet new console -n WordFormTemplate cd WordFormTemplate dotnet add package IronWord SHELL または、Visual Studio のNuGetパッケージ マネージャーで"IronWord"を検索してインストールすることもできます。この.NET Wordライブラリは、システムに Microsoft Office や Word Interop がインストールされていなくても動作するため、Office が利用できないサーバー側やクラウド環境での展開に適しています。 インストール後、API呼び出しを行う前にライセンスキーを追加してください。 IronWordのライセンスページから無料トライアルキーを入手するか、コードに直接キーを設定できます。 using IronWord; License.LicenseKey = "YOUR-LICENSE-KEY"; using IronWord; License.LicenseKey = "YOUR-LICENSE-KEY"; IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel パッケージをインストールしてライセンスを取得すれば、プログラムを使ってフォームテンプレートを作成する準備が整います。 C#で入力可能なフォームテンプレートを作成するにはどうすればよいですか? 表とプレースホルダーを使ってフォームを構成するにはどうすれば良いですか? 表は、適切な表セル配置によって、整理されたフォームレイアウトの基盤となります。 ドキュメントオブジェクトは、Word文書に表やフォームフィールドを追加するために使用されます。 以下のコード例は、IronWordのドキュメントAPIを使用して、ラベルと入力プレースホルダーを含む基本的なフォーム構造を作成する方法を示しています。 using IronWord; using IronWord.Models; // Apply your license key License.LicenseKey = "YOUR-LICENSE-KEY"; // Create a new document instance WordDocument doc = new WordDocument(); // Create the form header Paragraph header = new Paragraph(); var headerText = new IronWord.Models.TextContent("Job Application Form") { Style = new TextStyle { TextFont = new Font() { FontFamily = "Arial", FontSize = 24 }, IsBold = true, Color = new Color("#1a1a1a") } }; header.AddText(headerText); doc.AddParagraph(header); // Add spacing paragraph doc.AddParagraph(new Paragraph()); // Create a table for personal information section Table personalInfoTable = new Table(4, 2); // Set column labels and placeholder text fields personalInfoTable.Rows[0].Cells[0].AddParagraph(new Paragraph(new IronWord.Models.TextContent("Full Name:"))); personalInfoTable.Rows[0].Cells[1].AddParagraph(new Paragraph(new IronWord.Models.TextContent("{FullName}"))); personalInfoTable.Rows[1].Cells[0].AddParagraph(new Paragraph(new IronWord.Models.TextContent("Email Address:"))); personalInfoTable.Rows[1].Cells[1].AddParagraph(new Paragraph(new IronWord.Models.TextContent("{Email}"))); personalInfoTable.Rows[2].Cells[0].AddParagraph(new Paragraph(new IronWord.Models.TextContent("Phone Number:"))); personalInfoTable.Rows[2].Cells[1].AddParagraph(new Paragraph(new IronWord.Models.TextContent("{Phone}"))); personalInfoTable.Rows[3].Cells[0].AddParagraph(new Paragraph(new IronWord.Models.TextContent("Date of Application:"))); personalInfoTable.Rows[3].Cells[1].AddParagraph(new Paragraph(new IronWord.Models.TextContent("{ApplicationDate}"))); doc.AddTable(personalInfoTable); // Save the template to a file with descriptive name doc.SaveAs("JobApplicationTemplate.docx"); Console.WriteLine("Form template created successfully!"); using IronWord; using IronWord.Models; // Apply your license key License.LicenseKey = "YOUR-LICENSE-KEY"; // Create a new document instance WordDocument doc = new WordDocument(); // Create the form header Paragraph header = new Paragraph(); var headerText = new IronWord.Models.TextContent("Job Application Form") { Style = new TextStyle { TextFont = new Font() { FontFamily = "Arial", FontSize = 24 }, IsBold = true, Color = new Color("#1a1a1a") } }; header.AddText(headerText); doc.AddParagraph(header); // Add spacing paragraph doc.AddParagraph(new Paragraph()); // Create a table for personal information section Table personalInfoTable = new Table(4, 2); // Set column labels and placeholder text fields personalInfoTable.Rows[0].Cells[0].AddParagraph(new Paragraph(new IronWord.Models.TextContent("Full Name:"))); personalInfoTable.Rows[0].Cells[1].AddParagraph(new Paragraph(new IronWord.Models.TextContent("{FullName}"))); personalInfoTable.Rows[1].Cells[0].AddParagraph(new Paragraph(new IronWord.Models.TextContent("Email Address:"))); personalInfoTable.Rows[1].Cells[1].AddParagraph(new Paragraph(new IronWord.Models.TextContent("{Email}"))); personalInfoTable.Rows[2].Cells[0].AddParagraph(new Paragraph(new IronWord.Models.TextContent("Phone Number:"))); personalInfoTable.Rows[2].Cells[1].AddParagraph(new Paragraph(new IronWord.Models.TextContent("{Phone}"))); personalInfoTable.Rows[3].Cells[0].AddParagraph(new Paragraph(new IronWord.Models.TextContent("Date of Application:"))); personalInfoTable.Rows[3].Cells[1].AddParagraph(new Paragraph(new IronWord.Models.TextContent("{ApplicationDate}"))); doc.AddTable(personalInfoTable); // Save the template to a file with descriptive name doc.SaveAs("JobApplicationTemplate.docx"); Console.WriteLine("Form template created successfully!"); Imports IronWord Imports IronWord.Models ' Apply your license key License.LicenseKey = "YOUR-LICENSE-KEY" ' Create a new document instance Dim doc As New WordDocument() ' Create the form header Dim header As New Paragraph() Dim headerText = New IronWord.Models.TextContent("Job Application Form") With { .Style = New TextStyle With { .TextFont = New Font() With {.FontFamily = "Arial", .FontSize = 24}, .IsBold = True, .Color = New Color("#1a1a1a") } } header.AddText(headerText) doc.AddParagraph(header) ' Add spacing paragraph doc.AddParagraph(New Paragraph()) ' Create a table for personal information section Dim personalInfoTable As New Table(4, 2) ' Set column labels and placeholder text fields personalInfoTable.Rows(0).Cells(0).AddParagraph(New Paragraph(New IronWord.Models.TextContent("Full Name:"))) personalInfoTable.Rows(0).Cells(1).AddParagraph(New Paragraph(New IronWord.Models.TextContent("{FullName}"))) personalInfoTable.Rows(1).Cells(0).AddParagraph(New Paragraph(New IronWord.Models.TextContent("Email Address:"))) personalInfoTable.Rows(1).Cells(1).AddParagraph(New Paragraph(New IronWord.Models.TextContent("{Email}"))) personalInfoTable.Rows(2).Cells(0).AddParagraph(New Paragraph(New IronWord.Models.TextContent("Phone Number:"))) personalInfoTable.Rows(2).Cells(1).AddParagraph(New Paragraph(New IronWord.Models.TextContent("{Phone}"))) personalInfoTable.Rows(3).Cells(0).AddParagraph(New Paragraph(New IronWord.Models.TextContent("Date of Application:"))) personalInfoTable.Rows(3).Cells(1).AddParagraph(New Paragraph(New IronWord.Models.TextContent("{ApplicationDate}"))) doc.AddTable(personalInfoTable) ' Save the template to a file with descriptive name doc.SaveAs("JobApplicationTemplate.docx") Console.WriteLine("Form template created successfully!") $vbLabelText $csharpLabel このコードは、WordDocument クラスを使用して新しいドキュメント インスタンスを作成し、Table クラスを使用して構造化されたフォームを構築します。 各行には、最初のセルにラベル、2番目のセルにプレースホルダ(中括弧で囲む)が含まれています。 TextContent クラスはプレーンテキストコンテンツを処理し、TextStyle クラスは書式設定を適用します。 プレースホルダー構文 {FieldName} は、後でテキストを実際のデータに置き換える領域を示します。 罫線、網掛け、列幅などの高度な書式設定オプションについては、 IronWordのドキュメントを参照してください。 複数セクションのフォームにおけるベストプラクティスとは? 以下のコード例は、複数のセクションを含む完全な求人応募フォームを作成する方法を示しています。 ヘルパーメソッドを使用すると、繰り返し作業を減らし、職歴や参考文献などの追加セクションをテンプレートに追加して簡単に拡張できます。 using IronWord; using IronWord.Models; License.LicenseKey = "YOUR-LICENSE-KEY"; // Create an empty document to start fresh WordDocument doc = new WordDocument(); // Document title with rich text styling Paragraph title = new Paragraph(); TextContent titleText = new TextContent("Employment Application Form"); titleText.Style = new TextStyle() { TextFont = new Font() { FontFamily = "Arial", FontSize = 28 }, IsBold = true }; // Center the paragraph title.Alignment = IronWord.Models.Enums.TextAlignment.Center; title.AddText(titleText); doc.AddParagraph(title); doc.AddParagraph(new Paragraph()); // Section 1: Personal Information with text box style fields AddSectionHeader(doc, "Personal Information"); Table personalTable = new Table(5, 2); SetFormRow(personalTable, 0, "Full Name:", "{FullName}"); SetFormRow(personalTable, 1, "Email:", "{Email}"); SetFormRow(personalTable, 2, "Phone:", "{Phone}"); SetFormRow(personalTable, 3, "Address:", "{Address}"); SetFormRow(personalTable, 4, "Date of Birth:", "{DOB}"); doc.AddTable(personalTable); doc.AddParagraph(new Paragraph()); // Section 2: Position Details AddSectionHeader(doc, "Position Details"); Table positionTable = new Table(3, 2); SetFormRow(positionTable, 0, "Position Applied For:", "{Position}"); SetFormRow(positionTable, 1, "Available Start Date:", "{StartDate}"); SetFormRow(positionTable, 2, "Desired Salary:", "{Salary}"); doc.AddTable(positionTable); doc.AddParagraph(new Paragraph()); // Section 3: Education Background AddSectionHeader(doc, "Education Background"); Table educationTable = new Table(3, 2); SetFormRow(educationTable, 0, "Highest Degree:", "{Degree}"); SetFormRow(educationTable, 1, "Institution:", "{Institution}"); SetFormRow(educationTable, 2, "Graduation Year:", "{GradYear}"); doc.AddTable(educationTable); doc.AddParagraph(new Paragraph()); // Section 4: Declaration - certification statement Paragraph declaration = new Paragraph(); declaration.AddText(new TextContent("Applicant certifies that the information provided is accurate and complete.")); doc.AddParagraph(declaration); doc.AddParagraph(new Paragraph()); Table signatureTable = new Table(1, 2); SetFormRow(signatureTable, 0, "Signature:", "{Signature}"); doc.AddTable(signatureTable); // Save template file doc.SaveAs("CompleteJobApplication.docx"); Console.WriteLine("Complete job application form created!"); // Helper method to add styled section headers void AddSectionHeader(WordDocument document, string headerText) { Paragraph sectionHeader = new Paragraph(); TextContent sectionText = new TextContent(headerText); sectionText.Style = new TextStyle() { TextFont = new Font() { FontFamily = "Arial", FontSize = 14 }, IsBold = true, Color = new Color("#333333") }; sectionHeader.AddText(sectionText); document.AddParagraph(sectionHeader); } // Helper method to populate table cells with label and placeholder void SetFormRow(Table table, int rowIndex, string label, string placeholder) { table.Rows[rowIndex].Cells[0].AddParagraph(new Paragraph(new TextContent(label))); table.Rows[rowIndex].Cells[1].AddParagraph(new Paragraph(new TextContent(placeholder))); } using IronWord; using IronWord.Models; License.LicenseKey = "YOUR-LICENSE-KEY"; // Create an empty document to start fresh WordDocument doc = new WordDocument(); // Document title with rich text styling Paragraph title = new Paragraph(); TextContent titleText = new TextContent("Employment Application Form"); titleText.Style = new TextStyle() { TextFont = new Font() { FontFamily = "Arial", FontSize = 28 }, IsBold = true }; // Center the paragraph title.Alignment = IronWord.Models.Enums.TextAlignment.Center; title.AddText(titleText); doc.AddParagraph(title); doc.AddParagraph(new Paragraph()); // Section 1: Personal Information with text box style fields AddSectionHeader(doc, "Personal Information"); Table personalTable = new Table(5, 2); SetFormRow(personalTable, 0, "Full Name:", "{FullName}"); SetFormRow(personalTable, 1, "Email:", "{Email}"); SetFormRow(personalTable, 2, "Phone:", "{Phone}"); SetFormRow(personalTable, 3, "Address:", "{Address}"); SetFormRow(personalTable, 4, "Date of Birth:", "{DOB}"); doc.AddTable(personalTable); doc.AddParagraph(new Paragraph()); // Section 2: Position Details AddSectionHeader(doc, "Position Details"); Table positionTable = new Table(3, 2); SetFormRow(positionTable, 0, "Position Applied For:", "{Position}"); SetFormRow(positionTable, 1, "Available Start Date:", "{StartDate}"); SetFormRow(positionTable, 2, "Desired Salary:", "{Salary}"); doc.AddTable(positionTable); doc.AddParagraph(new Paragraph()); // Section 3: Education Background AddSectionHeader(doc, "Education Background"); Table educationTable = new Table(3, 2); SetFormRow(educationTable, 0, "Highest Degree:", "{Degree}"); SetFormRow(educationTable, 1, "Institution:", "{Institution}"); SetFormRow(educationTable, 2, "Graduation Year:", "{GradYear}"); doc.AddTable(educationTable); doc.AddParagraph(new Paragraph()); // Section 4: Declaration - certification statement Paragraph declaration = new Paragraph(); declaration.AddText(new TextContent("Applicant certifies that the information provided is accurate and complete.")); doc.AddParagraph(declaration); doc.AddParagraph(new Paragraph()); Table signatureTable = new Table(1, 2); SetFormRow(signatureTable, 0, "Signature:", "{Signature}"); doc.AddTable(signatureTable); // Save template file doc.SaveAs("CompleteJobApplication.docx"); Console.WriteLine("Complete job application form created!"); // Helper method to add styled section headers void AddSectionHeader(WordDocument document, string headerText) { Paragraph sectionHeader = new Paragraph(); TextContent sectionText = new TextContent(headerText); sectionText.Style = new TextStyle() { TextFont = new Font() { FontFamily = "Arial", FontSize = 14 }, IsBold = true, Color = new Color("#333333") }; sectionHeader.AddText(sectionText); document.AddParagraph(sectionHeader); } // Helper method to populate table cells with label and placeholder void SetFormRow(Table table, int rowIndex, string label, string placeholder) { table.Rows[rowIndex].Cells[0].AddParagraph(new Paragraph(new TextContent(label))); table.Rows[rowIndex].Cells[1].AddParagraph(new Paragraph(new TextContent(placeholder))); } Imports IronWord Imports IronWord.Models License.LicenseKey = "YOUR-LICENSE-KEY" ' Create an empty document to start fresh Dim doc As New WordDocument() ' Document title with rich text styling Dim title As New Paragraph() Dim titleText As New TextContent("Employment Application Form") titleText.Style = New TextStyle() With { .TextFont = New Font() With {.FontFamily = "Arial", .FontSize = 28}, .IsBold = True } ' Center the paragraph title.Alignment = IronWord.Models.Enums.TextAlignment.Center title.AddText(titleText) doc.AddParagraph(title) doc.AddParagraph(New Paragraph()) ' Section 1: Personal Information with text box style fields AddSectionHeader(doc, "Personal Information") Dim personalTable As New Table(5, 2) SetFormRow(personalTable, 0, "Full Name:", "{FullName}") SetFormRow(personalTable, 1, "Email:", "{Email}") SetFormRow(personalTable, 2, "Phone:", "{Phone}") SetFormRow(personalTable, 3, "Address:", "{Address}") SetFormRow(personalTable, 4, "Date of Birth:", "{DOB}") doc.AddTable(personalTable) doc.AddParagraph(New Paragraph()) ' Section 2: Position Details AddSectionHeader(doc, "Position Details") Dim positionTable As New Table(3, 2) SetFormRow(positionTable, 0, "Position Applied For:", "{Position}") SetFormRow(positionTable, 1, "Available Start Date:", "{StartDate}") SetFormRow(positionTable, 2, "Desired Salary:", "{Salary}") doc.AddTable(positionTable) doc.AddParagraph(New Paragraph()) ' Section 3: Education Background AddSectionHeader(doc, "Education Background") Dim educationTable As New Table(3, 2) SetFormRow(educationTable, 0, "Highest Degree:", "{Degree}") SetFormRow(educationTable, 1, "Institution:", "{Institution}") SetFormRow(educationTable, 2, "Graduation Year:", "{GradYear}") doc.AddTable(educationTable) doc.AddParagraph(New Paragraph()) ' Section 4: Declaration - certification statement Dim declaration As New Paragraph() declaration.AddText(New TextContent("Applicant certifies that the information provided is accurate and complete.")) doc.AddParagraph(declaration) doc.AddParagraph(New Paragraph()) Dim signatureTable As New Table(1, 2) SetFormRow(signatureTable, 0, "Signature:", "{Signature}") doc.AddTable(signatureTable) ' Save template file doc.SaveAs("CompleteJobApplication.docx") Console.WriteLine("Complete job application form created!") ' Helper method to add styled section headers Sub AddSectionHeader(document As WordDocument, headerText As String) Dim sectionHeader As New Paragraph() Dim sectionText As New TextContent(headerText) sectionText.Style = New TextStyle() With { .TextFont = New Font() With {.FontFamily = "Arial", .FontSize = 14}, .IsBold = True, .Color = New Color("#333333") } sectionHeader.AddText(sectionText) document.AddParagraph(sectionHeader) End Sub ' Helper method to populate table cells with label and placeholder Sub SetFormRow(table As Table, rowIndex As Integer, label As String, placeholder As String) table.Rows(rowIndex).Cells(0).AddParagraph(New Paragraph(New TextContent(label))) table.Rows(rowIndex).Cells(1).AddParagraph(New Paragraph(New TextContent(placeholder))) End Sub $vbLabelText $csharpLabel このコードでは、論理的な部分に整理された複数のセクションからなるフォームテンプレートを作成します。 ヘルパーメソッド AddSectionHeader と SetFormRow はコードの重複を減らします。 Table コンストラクタは行と列のパラメータを受け取りますが、Rows および Cells コレクションは個々のテーブル セルへのアクセスを提供します。 各セクションには、スタイル付きのヘッダーと、記入可能なフィールドを持つ表が続きます。 このモジュール式のアプローチにより、要件の変更に応じて、日付選択フィールド、ドロップダウンリストオプション、チェックボックスセクションなどを簡単に追加できます。 画像コントロールを使用して画像を埋め込んだり、日付コントロールを使用して日付選択フィールドを追加したりすることもできます。 IronWordで段落を操作する方法の詳細については、操作ガイドを参照してください。 フォームテンプレートにデータを入力するにはどうすればよいですか? テキスト置換方法とは何ですか? テンプレートが作成されたら、テキスト置換機能を使って実際のデータを入力するのは簡単です。 以下のコードスニペットは、テンプレートファイルを読み込み、すべてのテキスト要素を反復処理することで、サンプル応募者情報を使用してフォームに入力する方法を示しています。 using IronWord; License.LicenseKey = "YOUR-LICENSE-KEY"; // Load the template document WordDocument doc = new WordDocument("CompleteJobApplication.docx"); // Define replacement data - example using John Doe as applicant var applicantData = new Dictionary<string, string> { { "{FullName}", "John Doe" }, { "{Email}", "john.doe@email.com" }, { "{Phone}", "(555) 123-4567" }, { "{Address}", "123 Main Street, Chicago, IL 60601" }, { "{DOB}", "March 15, 1992" }, { "{Position}", "Senior Software Developer" }, { "{StartDate}", "January 15, 2025" }, { "{Salary}", "$95,000" }, { "{Degree}", "Bachelor of Science in Computer Science" }, { "{Institution}", "University of Illinois" }, { "{GradYear}", "2014" }, { "{Signature}", "John Doe" } }; // Replace all placeholders with actual values foreach (var field in applicantData) { doc.Texts.ForEach(text => text.Replace(field.Key, field.Value)); } // Save the filled form to a new file doc.SaveAs("JohnDoe_Application.docx"); Console.WriteLine("Application form filled successfully!"); using IronWord; License.LicenseKey = "YOUR-LICENSE-KEY"; // Load the template document WordDocument doc = new WordDocument("CompleteJobApplication.docx"); // Define replacement data - example using John Doe as applicant var applicantData = new Dictionary<string, string> { { "{FullName}", "John Doe" }, { "{Email}", "john.doe@email.com" }, { "{Phone}", "(555) 123-4567" }, { "{Address}", "123 Main Street, Chicago, IL 60601" }, { "{DOB}", "March 15, 1992" }, { "{Position}", "Senior Software Developer" }, { "{StartDate}", "January 15, 2025" }, { "{Salary}", "$95,000" }, { "{Degree}", "Bachelor of Science in Computer Science" }, { "{Institution}", "University of Illinois" }, { "{GradYear}", "2014" }, { "{Signature}", "John Doe" } }; // Replace all placeholders with actual values foreach (var field in applicantData) { doc.Texts.ForEach(text => text.Replace(field.Key, field.Value)); } // Save the filled form to a new file doc.SaveAs("JohnDoe_Application.docx"); Console.WriteLine("Application form filled successfully!"); Imports IronWord License.LicenseKey = "YOUR-LICENSE-KEY" ' Load the template document Dim doc As New WordDocument("CompleteJobApplication.docx") ' Define replacement data - example using John Doe as applicant Dim applicantData As New Dictionary(Of String, String) From { {"{FullName}", "John Doe"}, {"{Email}", "john.doe@email.com"}, {"{Phone}", "(555) 123-4567"}, {"{Address}", "123 Main Street, Chicago, IL 60601"}, {"{DOB}", "March 15, 1992"}, {"{Position}", "Senior Software Developer"}, {"{StartDate}", "January 15, 2025"}, {"{Salary}", "$95,000"}, {"{Degree}", "Bachelor of Science in Computer Science"}, {"{Institution}", "University of Illinois"}, {"{GradYear}", "2014"}, {"{Signature}", "John Doe"} } ' Replace all placeholders with actual values For Each field In applicantData doc.Texts.ForEach(Sub(text) text.Replace(field.Key, field.Value)) Next ' Save the filled form to a new file doc.SaveAs("JohnDoe_Application.docx") Console.WriteLine("Application form filled successfully!") $vbLabelText $csharpLabel テキスト要素の Replace メソッドは、プレースホルダー トークンを実際の値に置き換えます。 辞書を使うことでデータが整理され、データベース、API、またはWebアプリケーションのユーザー入力からフォームにデータを簡単に入力できるようになります。 Texts プロパティはドキュメント内のすべてのテキスト コンテンツへのアクセスを提供し、ForEach は各テキスト要素を反復処理して置換を実行します。 このパターンは、単一のテンプレートから複数のパーソナライズされた文書を生成するのに適しており、多数の候補者への採用通知書を一度に作成するなど、バッチ処理のシナリオに最適です。 記入済みのフォームをどのように安全に保管しますか? フォームへの入力後、Word文書に保護設定を適用することで、文書のセキュリティを強化できます。 これには、読み取り専用制限やパスワード要件などの保護設定を行い、許可されたユーザーのみがコンテンツを変更できるようにすることを意味します。 個人識別番号、財務情報、医療記録などの機密データを扱う際には、セキュリティ上の配慮が極めて重要です。 保存時および転送時のデータ暗号化、フォームアクセスに関する監査ログ記録、異なるユーザータイプに対する役割ベースのアクセス権限など、追加のセキュリティレイヤーの実装を検討してください。 検証可能な監査証跡が必要な文書については、完成したWord文書をPDFに変換し、 IronPDFを使用してPDFにデジタル署名を適用することを検討してください。 作成にはWord、配布にはPDFというこの組み合わせは、金融や医療などの規制業界ではよく見られるパターンです。 入力可能なWord形式のフォームをPDFに変換するにはどうすればよいですか? 記入可能なWordフォームをPDFに変換することは、フォームを普遍的にアクセスしやすく、共有しやすくするために不可欠なステップです。 IronWordのような.NET Wordライブラリを使用すると、フォームフィールドを含むWord文書を効率的にPDF文書に変換できます。 このプロセスでは、Word文書を読み込み、そのフォームフィールドにアクセスし、ライブラリの変換方法を使用して、すべてのコンテンツを保持したPDFファイルを生成します。 生成されたPDF文書はフォームの内容を保持するため、ユーザーは標準的なPDFビューアを使用して閲覧できます。Microsoft Wordや専用ソフトウェアは必要ありません。 これは、フォームを広く配布し、異なるプラットフォームやデバイス間での互換性を確保する必要がある組織にとって特に有用です。 .NET Wordライブラリの変換機能を利用することで、WordでProfessionalフォームを作成し、それをPDFに変換して最終配布することができ、ワークフローを簡素化し、アクセシビリティを向上させることができます。 PDF変換方法を選択する際には、以下の表に示す要素を考慮してください。 .NETにおけるWordからPDFへの変換方法の比較 アプローチ オフィス必須 サーバーサイドセーフ フィデリティ Microsoft Office Interop はい なし 高い IronWord + IronPDF なし はい 高い LibreOffice ヘッドレス なし はい(Linux) 中くらい Aspose.Words なし はい 高い 複数の文書タイプを必要とするEnterprise環境での導入の場合は、 IronWordのライセンスオプションを確認し、文書処理スタック全体を網羅するSuiteライセンスを検討してください。 入力可能なPDFファイルを配布するにはどうすればよいですか? 記入可能なPDFを作成したら、それをユーザーに配布するのは簡単で、非常に柔軟です。 入力可能なPDFファイルは、メールで共有したり、Webアプリケーションに埋め込んだり、DropboxやGoogle Driveなどのクラウドストレージサービスにアップロードしたりできます。これにより、ユーザーはPDFを簡単にダウンロードし、Adobe Acrobat ReaderなどのPDFビューアを使用してフォームに入力し、記入済みの文書を電子的に返送できます。 このデジタル配信プロセスは、データ収集を加速させるだけでなく、物理的なペーパーワークを不要にするため、リモートチームやオンラインワークフローに最適です。 求人応募、顧客からのフィードバック、登録情報の収集など、どのような場合でも、入力可能なPDFファイルを配布することで、組織と回答者の双方にとってスムーズで効率的なペーパーレス体験を実現できます。 フォームが利用可能になった際に受信者に通知したり、完了状況を追跡したり、提出期限が過ぎたフォームのリマインダーを送信したりする自動化されたワークフローの導入を検討してください。 メールマーケティングプラットフォームとの連携により、差し込み印刷フィールドによるパーソナライズを維持しながら、大量配信を簡素化できます。 効果的なデジタルフォームの設計に関する背景知識としては、 W3C Web FormsガイドとMicrosoftのDOCX Open XML仕様の両方が、標準規格への準拠に関する有用な情報を提供しています。 高度なフォーム機能をどのように実装しますか? 入力可能なフォームをさらに改善するには、ロジックや検証などの高度な機能を追加することを検討してください。 Logicを使用すると、ユーザーの入力に動的に反応するインタラクティブなフォームを作成できます。 例えば、以前の回答に基づいてセクションを表示または非表示にしたり、特定の条件が満たされた場合にのみ特定のフィールドを有効にしたりすることができます。 バリデーションは、ユーザーが入力したデータが、正しい日付形式、必須項目、有効な電子メールアドレスなどの要件を満たしていることを確認します。 多くの.NET Wordライブラリは、コードによるこれらの高度な機能の作成をサポートしており、ユーザーを誘導し、エラーを減らす洗練されたフォームを構築することができます。 Word文書のテンプレートにロジックと検証を組み込むことで、データを収集するだけでなく、受信した情報の品質と一貫性を向上させるインタラクティブなフォームを作成できます。 高度な実装には以下のようなものが含まれる可能性があります。 合計値を自動的に計算したり、数式を適用したりする計算フィールド 必須項目やエラーを強調表示する条件付き書式設定 動的なフィールドラベルと説明による多言語対応 リアルタイム検証のための外部データソースとの統合 正規表現またはビジネスロジックを使用したカスタム検証ルール フォームの記入完了率を示す進捗状況インジケーター 複雑なフォームのシナリオでは、技術的な知識のないユーザーでもコーディングなしでテンプレートを作成・変更できるフォームBuilderインターフェースの実装を検討してください。 このアプローチにより、大規模組織全体で柔軟なフォーム管理が可能になり、ビジネスチームは独自のテンプレートを維持管理しながら、開発者はデータパイプラインに集中できます。IronWordのサンプルページには、高度なテンプレートを作成する際に役立つ、テキストスタイル、表の罫線、ドキュメントプロパティの操作方法に関する追加テクニックが紹介されています。 検証ロジックを構築する際は、コードの保守性とテスト容易性を維持するために、 .NETにおける入力検証の確立されたパターンに従ってください。 MicrosoftのOOXML文書構造に関するドキュメントも、 IronWordが生成する基本フォーマットを理解する上で貴重な参考資料となります。 次のステップは何ですか? IronWordを使用してC#で入力可能なフォームテンプレートを作成することで、 .NETアプリケーションのドキュメント生成ワークフローが簡素化されます。 テーブルベースのレイアウトアプローチは、適切に整列されたテーブルセルを持つプロフェッショナルで構造化されたフォームを作成し、テンプレート置換パターンは、あらゆるソースからの効率的なデータ入力を可能にします。 文書自動化のニーズが高まるにつれて、 IronWordのハウツーガイドを活用して、メールマージ、ヘッダーとフッターのカスタマイズ、多言語文書の生成といったトピックについて理解を深めてください。 IronWordの全機能を体験するには、無料トライアルをお試しください。または、本番環境への導入をご希望の場合は、ライセンスをご購入ください。 実装に関するご質問は、 IronWordのサポートページからエンジニアリングチームにお問い合わせください。 IronWord APIリファレンスを参照して、詳細なクラスドキュメントと、複雑なフォームシナリオ、複数ドキュメント処理、エンタープライズ規模の実装を示す高度な例を確認してください。 よくある質問 IronWordとは何か? IronWordは.NET Wordライブラリで、開発者はMicrosoft Officeに依存することなくDOCXファイルを生成、編集することができます。 IronWord を使用して C# で入力可能なフォームを作成するにはどうすればよいですか? IronWord を使用すると、テーブル ベースのレイアウトとプレースホルダー テキスト フィールドを含むフォーム テンプレートをプログラムで構築し、実行時にプレースホルダーを実際のデータに置き換えることで、C# で入力可能なフォームを作成できます。 記入可能なフォームテンプレートの作成が有益な理由 記入可能なフォームテンプレートの作成は、データ収集プロセスを合理化し、ドキュメントの一貫性を確保し、さまざまなアプリケーションや業界で時間を節約できるため、有益です。 記入可能なフォームテンプレートを使用すると、どのような業界でメリットがありますか? 人事、医療、構造化されたデータ収集が必要なあらゆる分野で、記入可能なフォームテンプレートを使用することで、申請書を処理し、重要な情報を効率的に収集することができます。 IronWordを使用するには Microsoft Office をインストールする必要がありますか? IronWordを使用するためにMicrosoft Officeをインストールする必要はありません。Microsoft Officeに依存することなく、DOCXファイルの生成と編集が可能です。 IronWordは大規模な文書処理に対応できますか? IronWordは大規模な文書処理を効率的に処理するように設計されており、企業レベルのアプリケーションに適しています。 IronWordで使用されるプログラミング言語は何ですか? IronWordは C# で使用されるため、 .NET Framework内で作業する開発者にとって最適な選択肢となります。 IronWord をプロジェクトに統合するためのサポートはありますか? はい、 Iron Software はIronWord をプロジェクトに統合するためのサポートとドキュメントを提供しています。 IronWordはWord文書の作成と編集の両方に使用できますか? IronWordは新しいWord文書の作成と既存の文書の編集の両方に使用できます。 Jordi Bardia 今すぐエンジニアリングチームとチャット ソフトウェアエンジニア Jordiは、最も得意な言語がPython、C#、C++であり、Iron Softwareでそのスキルを発揮していない時は、ゲームプログラミングをしています。製品テスト、製品開発、研究の責任を分担し、Jordiは継続的な製品改善において多大な価値を追加しています。この多様な経験は彼を挑戦させ続け、興味を持たせており、Iron Softwareで働くことの好きな側面の一つだと言います。Jordiはフロリダ州マイアミで育ち、フロリダ大学でコンピュータサイエンスと統計学を学びました。 関連する記事 更新日 2025年9月18日 ASP.NET Coreでワードファイルをインポート&エクスポートする このガイドでは、既存のワード文書をインポートし、その内容を表示し、IronWordライブラリを使用してスクラッチから文書を作成する方法を探ります。 詳しく読む 更新日 2025年10月11日 VS 2022 プログラムで新しいワード文書を作成する(チュートリアル) 今日のチュートリアルでは、IronWordを使用してMicrosoft Word文書をプログラムで作成する方法を簡単に説明し、簡単な例を提供します。 詳しく読む 更新日 2026年1月18日 C#を使用してワードでテキストを整列する方法 IronWord NuGetパッケージに深く掘り下げ、このパッケージを使用してテキストや段落を整列する方法を探ります。 詳しく読む ASP.NET Coreでワードファイ...
更新日 2025年9月18日 ASP.NET Coreでワードファイルをインポート&エクスポートする このガイドでは、既存のワード文書をインポートし、その内容を表示し、IronWordライブラリを使用してスクラッチから文書を作成する方法を探ります。 詳しく読む
更新日 2025年10月11日 VS 2022 プログラムで新しいワード文書を作成する(チュートリアル) 今日のチュートリアルでは、IronWordを使用してMicrosoft Word文書をプログラムで作成する方法を簡単に説明し、簡単な例を提供します。 詳しく読む
更新日 2026年1月18日 C#を使用してワードでテキストを整列する方法 IronWord NuGetパッケージに深く掘り下げ、このパッケージを使用してテキストや段落を整列する方法を探ります。 詳しく読む