C# : Excel の新しいブックのデフォルトのシートのセルに直接値をセットして、オートフィルを Range オブジェクトから実行する



Range オブジェクトの作成に数値を使用します

プログラミングで処理を行うので、Range("A1:A20") というような表現を使わずに、Cells(行,列) を使って Range オブジェクトを作成しています。
01.using System;
02. 
03.namespace excel_2020_11_26
04.{
05.        class Program
06.        {
07.                static void Main(string[] args)
08.                {
09.                        // Excel アプリケーション
10.                        dynamic ExcelApp = Activator.CreateInstance(Type.GetTypeFromProgID("Excel.Application"));
11.                        // Excel のパス
12.                        string path = Environment.CurrentDirectory + @"\sample.xlsx";
13. 
14.                        // Excel を表示( 完成したらコメント化 )
15.                        ExcelApp.Visible = true;
16.                        // 警告を出さない
17.                        ExcelApp.DisplayAlerts = false;
18. 
19.                        try
20.                        {
21.                                // ****************************
22.                                // ブック追加
23.                                // ****************************
24.                                dynamic Book = ExcelApp.Workbooks.Add();
25. 
26.                                // 通常一つのシートが作成されています
27.                                dynamic Sheet = Book.Worksheets(1);
28. 
29.                                // ****************************
30.                                // シート名変更
31.                                // ****************************
32.                                Sheet.Name = "C#の処理";
33. 
34.                                // ****************************
35.                                // セルに値を直接セット
36.                                // ****************************
37.                                for (int i = 1; i <= 10; i++)
38.                                {
39.                                        Sheet.Cells(i, 1).Value = "処理 : " + i;
40.                                }
41. 
42.                                // ****************************
43.                                // 1つのセルから
44.                                // AutoFill で値をセット
45.                                // ****************************
46.                                Sheet.Cells(1,2).Value = "子";
47.                                // 基となるセル範囲
48.                                dynamic SourceRange = Sheet.Range(Sheet.Cells(1, 2), Sheet.Cells(1, 2));
49.                                // オートフィルの範囲(基となるセル範囲を含む )
50.                                dynamic FillRange = Sheet.Range(Sheet.Cells(1, 2), Sheet.Cells(10, 2));
51.                                SourceRange.AutoFill(FillRange);
52. 
53. 
54.                                // ****************************
55.                                // 保存
56.                                // ****************************
57.                                Book.SaveAs(path);
58.                        }
59.                        catch (Exception ex)
60.                        {
61.                                ExcelApp.Quit();
62.                                System.Runtime.InteropServices.Marshal.ReleaseComObject(ExcelApp);
63.                                Console.WriteLine(ex.Message);
64.                                return;
65.                        }
66. 
67.                        ExcelApp.Quit();
68.                        // 解放
69.                        System.Runtime.InteropServices.Marshal.ReleaseComObject(ExcelApp);
70. 
71.                        Console.WriteLine("処理を終了します");
72. 
73.                }
74.        }
75.}

関連する記事

JScript : Excel の新しいブックのデフォルトのシートのセルに直接値をセットして、オートフィルを Range オブジェクトから実行する

関連する Microsoft ドキュメント

Application オブジェクト Workbook オブジェクトのコレクション Workbook オブジェクト Worksheet オブジェクトのコレクション Worksheet オブジェクト Cells プロパティ