大阪で定期的に開催されているC# 読書会での『C# ショートコードプログラミング 第2版』に関する感想などをまとめました。
C#ショートコードプログラミング 第2版 (MSDNプログラミングシリーズ)
- 作者: 川俣晶
- 出版社/メーカー: 日経BP社
- 発売日: 2014/01/17
- メディア: 単行本
- この商品を含むブログ (1件) を見る
大阪で定期的に開催されているC# 読書会での『C# ショートコードプログラミング 第2版』に関する感想などをまとめました。
C#ショートコードプログラミング 第2版 (MSDNプログラミングシリーズ)
大阪で定期的に開催されているC# 読書会での『C# ショートコードプログラミング 第2版』に関する感想などをまとめました。
C#ショートコードプログラミング 第2版 (MSDNプログラミングシリーズ)
大阪で定期的に開催されているC# 読書会での『C# ショートコードプログラミング 第2版』に関する感想などをまとめました。
C#ショートコードプログラミング 第2版 (MSDNプログラミングシリーズ)
『全てのVBAコードを生まれる前に消し去りたい。
すべての宇宙、過去と未来の全てのVBAを、この手で』
このページはExcel VBAを実務で利用されている方で、VBAに心の底から辟易しており、現代的なプログラミング言語(C#6.0)を使って、Excelファイルから分離されたコードで、お手軽にExcel操作を行いたいという方を対象としています。
このページでは、Excelの操作には、VBAに代えてC# Scriptを使います。C# Scriptを実行するにあたっては、C# スクリプト実行エンジンとしてRoslyn for Scripting C#を組み込んだExcel VSTOアドイン "ExcelCSX" を用いています。
このページを通じて、忌まわしきExcel VBAと決別し、より便利で快適なC#スクリプトの魅力を体験して頂ければ幸いです。
本記事は、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に関連するクラスのインスタンスや、インターフェースを実装したインスタンスをオブジェクトと呼びます。
本記事は、Excel C# Script入門講座の1記事です。
実際にC# Scriptを入力して、実行するまでを簡単に説明します。
まず、Select Folderをクリックして、C# Scriptが保存されている/これから保存するフォルダを指定してください。
選択したフォルダ内に既にC# Scriptファイル(*.csx)が存在する場合には、ドロップダウンボックスにファイル名が表示されます。
ここでは、新規にC# Scriptを入力してみます。
NewScriptボタンをクリックします。
エディタ(この場合、VisualStudioCode)が自動的に立ち上がります。
とりあえず、以下のコードを入力してください。
Excel.ActiveWorkbook.ActiveSheet.Range("A1").Value = "Hello C# Script";
"hello.csx"という名前で保存します。
この記事では取り上げませんが、既に存在する*.csxを編集したい場合は、ドロップダウンボックスで選択した後、Editボタンをクリックするとファイルを選択した状態でエディタが立ち上がります。*1
Reloadをクリックした後*2、
Script File:のドロップダウンボックスで"hello.csx"を選択します。
Runボタンをクリックすると、スクリプトが実行されます。
Excelを立ち上げてから初回の実行のみ若干実行までに時間がかかります。スクリプト実行中は、Runボタンはグレーアウトされ、スクリプトの実行が終了すると、水色に戻ります。
本記事は、Excel C# Script入門講座の1記事です。
githubで公開されているExcelCSX のレポジトリのreleasesページを開きます。
ExcelCSXのパッケージ(zipファイル)をダウンロードします。
ダウンロードしたファイルを展開します。
フォルダの中にある"ExcelCSX.vsto"を実行します。
警告画面が表示されますが、そのままインストールしてください。
正常にインストールされると上記画面が表示されます。
EXcelCSX導入後に、Excelを起動するとアドインタブに以下の機能が追加されています。
(インストールしたにも関わらず表示されない場合は、「リボンのユーザー設定」から「アドイン」タブのチェックをON/OFFすると表示される場合があります。)
「Options」ボタンをクリックし、設定画面を表示します。
"Editor Path" に、C# Scriptの編集に使いたいエディタを指定してください。
(デフォルトではVisual Studio Codeのパスを指定しています。)
オススメのエディタはVisual Studio Codeです。
C# エクステンションを入れると、C# Scriptファイル(*.csx)を開いた際に、ハイライトが有効になるほか、一部の補完機能・入力支援機能が使えるようになります。素のテキストエディタに比べてぐっと書きやすくなります。
"Default Folder Path"は、起動時にデフォルトで読み込まれるフォルダを指定します。C# Scriptを保存するフォルダを指定すると良いです。