黙々とC#

"In a mad world of VBA, only the mad are sane" 『VBAという名の狂った世界で狂っているというのなら私の気は確かだ』

オブジェクトとプロパティ、メソッド

本記事は、Excel C# Script入門講座の1記事です。

オブジェクトとプロパティ、メソッド

C# ScriptでExcelを操作するにあたっては、コード上で

  • 操作対象とするモノ
  • 操作内容

の2つを指定します。

前者については、Excelのワークブック(Workbook)やワークシート(Worksheet)、セル(Cell)などが操作対象となります。C# Script(コード)上で、これらの操作対象物を特定するものをオブジェクトと呼びます。*1

Excelにおいては、Excelのプロセス自身を表す Excel.Applicationオブジェクトを最上位として、当該プロセスで開いたWorkbookや、開かれたWorkbookに含まれるWorksheetが階層構造を構成しつつ保持されています。

Excel.Application
└ Excel.Application.Workbooks("****")
   └ Excel.Application.Workbooks("****").Worksheet
       └ Excel.Application.Workbooks("****").Worksheet("*****").Cells(1,1)

なお、ExcelCSXを用いる場合、現在実行中のExcelを示すExcel.Applicationオブジェクトは、変数名Excelでアクセスすることができます。

これらの各オブジェクトには、各種操作を行うためのプロパティメソッドが備えられています。

プロパティは、値を代入することで操作対象のオブジェクトの見た目や振る舞いを変更することができます。なお、プロパティの中には、値を代入することはできず、読み取り専用のプロパティも存在します。

例えば、セルの値を変更したい場合、以下のように、特定のWorksheet上のセルを示すRangeオブジェクトのValueプロパティに値を設定します。

Excel.ActiveWorkbook.Worksheets("Sheet1").Range("A1").Value = "C#";

メソッドは、操作対象のオブジェクトに対して何らかの動作をさせることができます。

例えば、特定のセルを選択(アクティブ)にする場合、以下のように、RangeオブジェクトのSelectメソッドを実行します。

Excel.ActiveWorkbook.Worksheets("Sheet1").Range("A1").Select();

操作したい内容に相当する プロパティメソッドについては種類が多いため、適宜MSDNや巷のWebページで調べる必要があります。また、Excel.Applicationオブジェクトの扱い方はコーディング記法に差こそあれ、VBAから利用する場合でも同様のため、多少の読み替えでVBAのページを参考にすることも可能です。

本連載では以降のページで、

  • 操作対象を示すオブジェクトの名称・指定方法
  • 各オブジェクトに用意された プロパティメソッド の名称・利用方法

について、基本的なものを網羅的に説明します。

*1:より厳密にはExcel.Applicationに関連するクラスのインスタンスや、インターフェースを実装したインスタンスをオブジェクトと呼びます。