Arithmetika

 

2,3,4次方程式の解を求める

 

Copyright 2009年、佐々木芳

 

トップページへ戻る

 

 

はじめに

プログラミングが専門でない技術者にとってもWindowsアプリケーション(マイクロソフトExcelなど)に実装されているOLEオートメーションやVBA(Visual Basic for Applications)は仕事の効率や信頼性を向上させる上で重要な機能です。特に繰り返し行う定型作業の自動化には有効です。 プログラマにとってはOffice系アプリケーションであろうと技術系のアプリケーション(例えばCAD/CAMなど)であろうとそれらに搭載されているオートメーション機能、VBAはなじみやすいかもしれませんが、プログラミングが専門でない技術者にとってOffice系のアプリケーションでオートメーションやVBAの技術になじむのはなかなか大変だと思います。オートメーションをうまく利用するためには2つの側面を理解する必要があります。1つ目は、オートメーションに対応したVisualBasicなどの言語仕様を理解することです。これはどの用途のアプリケーションでも共通です。2つ目は、各アプリケーションの機能を公開するオブジェクトモデルを理解することです。これはアプリケーションごとにまったく違います。今のところ私の経験したCADアプリケーションではオートメーションを利用するためのドキュメントはあまり充実していませんでした。それらに比べるとマイクロソフトのExcelなどは日本語のドキュメントが付属してそれなりに理解しやすくはなっていますが、Execlを直接使わない場合にはこの膨大な機能のドキュメントをオートメーションの入門書とするのはあまりいい方法ではないでしょう。そこで、技術系向けのオートメーションプログラミングの入門的な例を作ってみようと思い立ち、まず2,3,4次方程式の解を求める電卓風のアプリケーション「Arithmetika」を作りました。今後、このアプリにオートメーションの機能を追加して、オートメーションプログラミングの入門書にしてみようと思います(うまくいけばいいのですが)。ただし、VisualBasicなどの各言語仕様についてはそれぞれの解説書を参考にしてください。(2009/01/10)

オートメーションサーバの機能を追加しました。今までOfficeCADアプリでオートメーションの機能を使いそれなりの効果が期待できることは経験していましたが、自分の作成したアプリケーションにオートメーション機能を実装したことはありませんでした。そこで今回はVC6MFCアプリケーションに後からどのようにオートメーション機能を実装したらよいかの実証実験だと思い進めてきました。(2009/04/21)

 

参考文献

 [1] マイクロソフト MSDN ライブラリ 2001 10 月リリース

[2] OLEオートメーション プログラマーズ リファレンス(アスキー出版)

[3]ATLインターナル(アスキー出版)

[4]ATL COM プログラミング(翔泳社)

 

1       インストール

ここからLZH形式の圧縮ファイルをダウンロードしてください。適当なフォルダに解凍すると以下の2つのファイルができます。

l  Setup_Arithmetika.msi

l  MSVCP60.DLL

Windows XP以降のOSへのインストールはSetup_Arithmetika.msiを実行するだけです。XP以前のOS(例えばWindows 2000 Professionalなど)へインストールする場合は、最初にMSVCP60.DLLをシステムフォルダにコピーしてからSetup_Arithmetika.msiを実行してください。MSVCP60.DLLはマイクロソフトの再頒布可能ファイルです。

MSVCP60.DLLはマイクロソフトサポートオンライン(http://support.microsoft.com/kb/259403/ja)から取得できます。

 

インストールが完了すると、スタートメニュとデスクトップへショートカットが作成されます。

 

2       操作方法

スタートメニュまたはデスクトップのショートカットからArithmetikaを起動すると以下のウインドウが現れます。

 

 

操作方法の詳細は解説書をご覧ください。

 

3       オートメーション

オートメーションサーバの機能を追加しました。これにより他のアプリケーションからArithmetikaの機能が使用できるようになります。特にVisualBasicVBScriptJScriptVBAVisual Basic for Applications)の言語を使用すると簡単にArithmetikaを操作できます。Arithmetika32ビットアプリケーションですが、COMローカルサーバーなので64ビットアプリケーションからも利用できます。

サンプルプログラムは以下からダウンロード出来ます。

VisualBasic2008ExpressEditionのサンプル1サンプル2

Excel2000VBAのサンプル
VBScriptのサンプル

Arithmetikaは、64ビット版Windowsでも使えますが、上記サンプルについては説明が必要です。

VisualBasic2008ExpressEditionは、32ビット版Window上では32ビットアプリケーション、64ビットWindows上では64ビットアプリケーションをつくります。上記サンプル1では、フォーム上に32ビット版ActiveXコントロール(*.ocx)を使っているので、64ビット版Windowsではビルドは出来ますが、実行できません。サンプル2は64ビット版Windowsでも動作します。

Excelのサンプルでも32ビット版ActiveXコントロール(*.ocx)を使っているので、32ビット版Excel2010であれば64ビット版Windows上でも動きますが、64ビット版Excel2010上では動作しません。

 

3.1    Arithmetikaのオブジェクトモデル

まずArithmetikaの公開するオブジェクトモデルを説明します。これらのオブジェクトのインタフェースを定義するにあたって『OLEオートメーション プログラマーズ リファレンス(アスキー出版)』の「標準とガイドライン」を参考にしました。以下にArithmetikaの公開するオブジェクトの階層構造を示します。

オブジェクトモデルの詳細は解説書をご覧ください。

 

4       修正履歴

V1.0.2     2009,1,10            最初の公開

V1.1.2     2009,4,20            オートメーション機能の追加(ヘルプを追加)

                                     3次方程式の解を求める時にハングしていたのを修正

V1.1.3     2009,5,24            UserEventオブジェクトを追加。

 

 

トップページへ戻る