本記事は、Excel C# Script入門講座の1記事です。
ExcelCSXの決まりごと
ExcelCSXでC# Scriptを書くにあたっての、ExcelCSX特有の決まりごとなどをまとめています。
C# Scriptの基本的な書き方・仕様に関しては、Roslyn for Scripting C# に準拠しています。
ExcelCSXにおいては、より手軽にExcelアプリケーションをC# Scriptで操作できるように、いくつかの拡張を施しています。以下ではこれらの拡張について説明を行っています。
スクリプトの実行
C#スクリプトの実行は、VSTOアドインとは別プロセス(非同期)で行われる。
ただし、操作によっては、Excel本体のプロセスを一時的にロックする場合がある(条件不明)。
デフォルトの参照・using
System.Dynamic
のみ参照・using済み。
これにより、dynamic型はなんの設定もなしにデフォルトで利用可能。
その他のライブラリについては、一切読み込まないため、適宜 #r で参照を追加するととともに、using で名前空間を指定する必要あり。
ExcelCSXを実行中のExcelアプリケーションへのアクセス
ExcelCSXで実行するC# Scriptファイルにおいては、変数名 Excelで、ExcelCSXを実行中のExcelアプリケーション(プロセス)にアクセスすることが可能です。
変数Excelは Excel.Applicationオブジェクトです。なお、Applicationオブジェクト以下の各型を指定する煩わしさを省略するため、ExcelCSX上では、便宜上、dynamic型に変えています。
#loadによる別スクリプトのロードについて
ExcelCSXで実行するC# Scriptファイルにおいては、#loadディレクティブで、実行中のスクリプトファイル(*.csx)のあるディレクトリ下を検索します。
a.csx, b.csxが同一フォルダに存在する場合、a.csxからは以下のように、ファイル名のみの記載でb.csxを読み込むことが可能です。
#load "b.csx" var x = 20;