【C#】Windows標準機能のメモ帳アプリでexeファイルを開発する

プログラムに少しでも興味がある人は、自分の仕事をプログラムで自動化したいと考えたことが一度はあるでしょう。しかし、そこで課題となるのが開発環境の整備です。企業によっては、アプリケーションのインストールに制限があるため、開発環境を整えることが難しい場合があります。そのため、インストール不要で手軽に使用できるVBAやVBScript、PowerShell、バッチファイルなどの言語が、業務効率化のツール開発に利用されるのは至極当然のことです。

これらの言語を使ったツールで業務効率化をするケースはよく見られますが、Windows標準機能で開発できる言語として「C#」も存在します。WindowsにはC#のコンパイラが標準装備されているため、ある程度の制限はありますがVBScriptやバッチファイルのようにメモ帳だけで開発することができます。本ページでは、メモ帳を使ってC#で実行ファイル(.exe)を開発する方法を解説していきます。

C#で開発ができるようになれば、VBAやVBScript、PowerShell、バッチファイルでは実現できないさまざまな機能を実装することが可能です。最終的にはexeファイルが作成されるため、VBAやPowerShellなどの処理とC#で開発したexeファイルの処理を連携させることができます。これにより、業務効率化ツールの開発の幅を大きく広げることができるようになります。
 

Windows標準 C#コンパイラ

C#のコンパイラは[C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe]です。このファイルは基本的に最近のWindowsであればどの端末でも標準装備されているもので保存場所も同じです。このexeファイルの引数としてC#ファイル(.cs)のパスを渡すことでコンパイル処理が実行されます。コンパイルされるとC#でコーディングした内容が実行ファイル(.exe)として出力されます。

コンパイルはコマンドプロンプトを開き下記のコマンドを実行するだけで行うことができます。

 <csファイルパス> 部分に作成したC#ファイルのパスを入力します。 (<>は不要)
コンパイラのフルパスを入力するのが面倒な場合は環境変数Pathとしてコンパイラのあるディレクトリを設定しておけば、[csc.exe <csファイルパス>]のみでコンパイルが可能になります。

コマンドを実行するとカレントディレクトリ内にコンパイルの結果であるexeファイルが出力されます。コマンドプロンプトでカレントディレクトリを切り替えたい場合はcdコマンドで変更することができるので、出力先を指定したい場合はコンパイル前にカレントディレクトリを切り替えておく必要があります。(カレントディレクトリ=コマンドプロンプトの>の左側に表示されているパス)

出力されるexeファイルの名称はコンパイル前のC#ファイル名と同じになります。
exeファイルの名称は変更しても問題ないので任意で名称の変更を行うことが可能です。

 icon-warning  注意 

「csc.exe」はC#5.0 (.NET Framework 4.5) までしか対応していません
それ以降に実装されたC#の機能は利用することが出来ないので予め注意が必要です。

 

コンパイルの流れ

メモ帳でC#を使ってアプリケーションファイル(.exe)を開発する流れは下記のとおりです。

1. メモ帳でC#ファイル(.cs)を作成
2. コマンドプロンプトで作成したC#ファイルを「csc.exe」を使ってコンパイル
3. アプリケーションファイル完成

 
C#ファイルの作成自体はVBScriptやバッチファイルを作成するのと同じでメモ帳にコードを書いて拡張子を変更するだけです。ただし、ダブルクリックしても実行はできないファイルのため、コンパイルをして実行できるファイルに変換する必要があります。
 

1. メモ帳でC#ファイル(.cs)を作成

ここではサンプルとして「Hello World」をメッセージボックスで表示する下記のサンプルコードを例に進めていきます。下記コードをコピーしてメモ帳に貼り付けて、ファイル名を「test.cs」として任意の場所に保存してください。実際はここで開発したいツールの処理をC#言語で記載します。

 
2. コマンドプロンプトで作成したC#ファイルを「csc.exe」を使ってコンパイル

作成したC#ファイルをコンパイルするには、コマンドプロンプトで下記コードを入力して実行するだけです。「C:\test.cs」部分は、前項で作成したC#ファイルのフルパスに書き換えてください。

これにより、現在のカレントディレクトリにコンパイル結果が出力されます。デフォルトでは「C:\Users\ユーザー名」がカレントディレクトリになっているため、このパスにコンパイル結果が出力されます。カレントディレクトリはcdコマンドで変更することができるので、出力先を変更したい場合はコンパイル前にカレントディレクトリを変更しておく必要があります。
 

3. アプリケーションファイル完成

コンパイルを実行すると所定の場所に「test.exe」が作成されます。アプリケーションファイル(.exe)をダブルクリックすることで、C#言語で記載した処理を実行させることができます。

 

ドラッグ&ドロップでコンパイル

前述の通りでC#のコンパイルはコマンドプロンプトで指定のコマンドを入力するだけで行うことができます。コマンドプロンプトで決まった処理をする場合はバッチファイルを使うのが有効です。

下記はドラッグ&ドロップで入力されたC#ファイルをコンパイルし、入力されたC#ファイルと同階層のディレクトリにコンパイルの結果(exeファイル)を出力するためのバッチファイル用のコードです。メモ帳に下記コードを貼り付けて、拡張子を「.bat」にすればすぐに利用可能です。

処理内容は非常に単純でドラッグ&ドロップされたC#ファイルのパスとC#ファイルが存在するディレクトリのパスを取得して、C#コンパイルのためのコマンドを作成して実行しているだけです。
 

まとめ

今回はWindows標準の機能だけでC#開発する方法についての解説でした。
コードは書きづらい面はあれどメモ帳で書くことができますし、そのコードをコンパイルするためのコンパイラもWindowsには用意されています。そのためコンパイルという作業が入る分、少し手間ではありますがVBScriptやバッチと同様にメモ帳だけでexeファイルの開発をすることができます。

Windowsの作業効率化ツールが開発できるプログラムとしてC#を利用することで、WindowsAPIとして用意されているインターフェースやクラスを利用することができるようになり、VBAやバッチなどでは実現することができない処理も行うことができます。
 

 関連書籍

C#

Posted by Lic