本記事は、Excel C# Script入門講座の1記事です。
メソッド、クラスの宣言
C# Scriptでは、メソッドの定義を直接書き始めることが可能です。
test(); void test(){ var a1 = Excel.ActiveWorkbook.ActiveSheet.Range("A1") a1.Value = "C# Script Test"; }
クラスの定義もどこにかいても大丈夫です。
var d = new D(); d.method(); class D { public void method() { var a1 = Excel.ActiveWorkbook.ActiveSheet.Range("A1") a1.Value = "C# Script Test"; } }
C# Script環境では、クラスなどで囲まずに直接記載したコードは、Roslyn内部でコード生成された際に、 いい感じにスクリプト全体を囲うクラスが作られ実行されます。
拡張メソッドの宣言
拡張メソッドはクラスを宣言せずに、直接スクリプト中で宣言します。
using System; static void ShowInA1(this string msg) { var a1 = Excel.ActiveWorkbook.ActiveSheet.Range("A1") a1.Value = msg; } "Hello World".ShowInA1();
上述の通り、Roslyn内部でコード生成された際に、 スクリプト全体を囲うクラスが作られるため、クラスを宣言してしまうと入れ子状にクラスが宣言されてしまい、コンパイルエラーが発生します。