みなさま、はじめまして!
新入社員の宇野と申します。まだまだわからないことばかりですが、先輩たちにアドバイスを頂きながら、
勉強の毎日を送っております。
そんな中、「自動化」について勉強する機会があったので、
今回はこちらをテーマにしたいと思います。
自動化について
ここで言う自動化とは、コンピュータ上で人間が行う作業をプログラムに任せてしまうことを言います。作業を自動化できれば、効率が大きく上がります。
例えば、テスティングフレームワークを用いたテストの自動化や、Excelなどのソフトに搭載されたマクロを用いた、普段の作業の自動化など様々なものがあります。
自動化を行うことのメリットとして以下の二つを挙げます
1. 作業時間が短くなる
2. ミスを減らせる
まず、1の作業時間については当たり前ですが、今まで自分でしてきた作業をコンピュータに任せるわけですから、作業全体にかかる時間はグっと短くなります。
場合によっては数時間の作業が数分に縮まることもあり、夢が広がります!
次の2のミスを減らせる、ですがこちらの効果が特に大きいと感じます。
1にも関係してくるところですが、自動化することで、ミスがないかチェックする時間が大幅に短くなります。
これは、チェックすべき点が入力内容などに絞られるためです。
ミスを起こしてしまうとそれを修正するためにも時間を取られるため、
そもそもミスを起こさない仕組み作りが大切だといえます。
Excel VBAを使用した自動化
自動化の利点について軽く説明したところで、Excel VBAを使用した自動化の例を紹介します。バージョンは、Excel 2013を使用します。
今回行う自動化は、指定したパラメータからC#クラスを生成するという単純な内容です。
この内容を発展させて、オンラインゲームの開発ではサーバとクライアントの情報のやり取りのルールを決める際、IDLと呼ばれる共通の定義を用いてやり取りに必要な各言語のコードを自動生成するといったことも行われています。
作業に取り掛かる前に
デフォルトではVBAを使用するための「開発」タブが無効になっているため、
リボンに「開発」タブが見当たらない方は、
ファイル→オプション→リボンのユーザー設定で、
「開発」にチェックをつけておきましょう。
今回は以下のパラメータを与えてクラスを生成します。
- クラス名
- クラスコメント
- プロパティリスト(プロパティは以下の設定項目を持つ)
- プロパティ名
- プロパティの型
- プロパティのコメント
そしてこれらの項目を、Excelのセルに入力し、VBAから読み取って変換し、
.csファイルとして出力します。
早速ですが、簡単にデータを入力してみました。
このデータをもとにコードを生成するプログラムを以下のように作成しました。
プログラム内にセルの参照を埋め込んでいますのでデータの入力位置に注意してください。
「開発」タブの「Visual Basic」を選択して、ThisWorkbookに保存しましょう。
保存操作によって、このExcelブックが保存されているディレクトリに.csファイルが出力されます。
そして、こちらが出力されたファイルです。
このように、Excelで入力した内容からC#クラスを生成することが出来ました。
クラスにpartialをつけて定義しているのは、partialをつけることで、一つのクラスを複数のファイルに分けることができ、自動生成されたファイルを変更せずにクラスを拡張することが出来るので、C#クラスを自動生成するときにはよく使われます。
今回紹介した内容は、簡単な例なので生成されるコード量は少ないですが、
この内容を応用して、何度も出てくる定型的なコードや、土台となるコードを生成するなど、生成するコード量を増やしていけば、かなりの作業量を軽減できると思います!
クラスにpartialをつけて定義しているのは、partialをつけることで、一つのクラスを複数のファイルに分けることができ、自動生成されたファイルを変更せずにクラスを拡張することが出来るので、C#クラスを自動生成するときにはよく使われます。
今回紹介した内容は、簡単な例なので生成されるコード量は少ないですが、
この内容を応用して、何度も出てくる定型的なコードや、土台となるコードを生成するなど、生成するコード量を増やしていけば、かなりの作業量を軽減できると思います!
また、今回は紹介できませんでしたが、特定のパラメータのみを入力可能とするなどの入力規則が簡単に利用できることもExcelの強みです。
まとめ
自動化をうまく使えば、時間を有効に使えるようになります。
今回紹介したのは、ほんの一例ですが、
プログラマの三大美徳の一つである「怠惰」を体現するためにも、自動化できるところは、自動化できるように常に考えながらプログラマ生活を送りたいですね。
採用情報
クラウドクリエイティブスタジオではエンジニアの方を絶賛募集中です。
一緒に面白いゲームを作っていきましょう!
コメント
コメントを投稿