eMbedded Visual Tools 3.0 入門
窓の杜 & WindowsCE FAN 共同企画


【第6回】

eMbedded VisualBasicその1
eMbedded VisualBasicの紹介

(01/01/22)

はじめに

「eMbedded Visual-C++ 3.0」をこの記事では連載してきたが、ここで「eMbedded VisualBasic 3.0」を紹介したい。eMbedded VisualBasic 3.0はVisualBasicを使ってPocketPCなどのソフトを開発できるものだ。プログラミング環境として入門者から大規模な業務用ソフトに至るまで幅広く使われているVisualBasicがWindowsCEマシン用ソフトの開発に使えることはCEマシンの他のPDAに対する大きな優位点だろう。

eMbedded VisualBasic 3.0は基本的にVisualBasicなので、Windows用のVisualBasicの開発の書籍などが参考になるだろう。初心者の方は是非Windows用の本を参考にしてほしい。この記事ではデスクトップ版との違いを中心に見ていきたい。

.exeではなく.vbを作る

eMbedded VisualBasic3.0はVisualBasic6.0との違いはかなりある。まず、最大の違いはexeファイルを作れないことだろう。eMbedded VisualBasic3.0でできるファイル拡張子がvbのファイルであり、eMbedded VisualBasicの実行環境を持ったマシンでなければ実行できない。しかし、この点はインストーラでeMbedded VisualBasicの実行環境をマシンにインストールするようにすれば問題ない。唯一、ソフトのアイコンを好きな者に変更できない、という問題は残るが・・。

コントロールの少なさ

左の画像を見ていただきたい。これがeMbedded VisualBasic3.0のツールボックスの標準で備わっているコントロールである。一見しただけで少ないが、例えばImageやPictureなど基本的とも言えるコントロールも無いことが分かる。

だが、それらのコントロールは使えないわけではない。ActiveXコントロールとしてちゃんと備わっているのだ。つまり、[プロジェクト]-[コンポーネント]でプロジェクトに挿入して使うわけである。WindowsCEマシンはデスクトップマシンに比べてリソースが少ないために出来るだけリソースを節約するようにこうなったのだろう。

しかし、本当にないコントロールもある。例えば、DriveListBox,DirListBox,FileListBoxである。以下に含まれるコントロールの一覧を上げておく。

標準コントロールActiveXコントロール
CheckBox
ListBox
ComboBox
OptionButton
CommandButton
Scrollbar
Frame
Shape
Label
TextBox
Line
Timer
Comm
ImageList
CommandBar
ListView
CommonDialog
MenuBar
FileSystem
PictureBox
Finance
TabStrip
Grid
TreeView
Image
Winsock

コントロールの配列が使えない

VisualBasicでは何かと便利なコントロールの配列。コントロールを配列化し、添え字を使って複数のコントロールを制御できるので、ゲームなどで盤面をつくるときに重宝する。しかし、eMbedded VisualBasic 3.0ではこのコントロールの配列が使えないのである。コントロールをコピーして貼り付けても、例の「コントロール配列にしますか」のメッセージは出ない。これは非常に痛い。

だが、筆者はそれを克服して、eMbedded VisualBasic 3.0で簡単にコントロールの配列を使える方法をみつけたので、それは次回記事で紹介したい。

コントロールのプロパティも微妙に違う

プロパティも一部異なる使い方をしなければならないものがある。例えば、ImageコントロールなどでおなじみのPictureプロパティだ。これは、デスクトップ版では以下のように使う。

Image1.Picture = LoadPicture("ファイル名")

LoadPicture関数で指定した画像ファイルをロードし、その戻り値をPictureプロパティに設定する。だが、eMbedded VisualBasic 3.0では以下のように行う。

Image1.Picture = "ファイル名"

直接ファイル名をセットするのである。このようにプロパティの扱い方が違うものがあるので要注意だ。

また、プロパティ自体が存在しないものもある(データベース系、OLE系、Drag&Drop系)。

削られた関数も多い

関数もデスクトップ版に比べて少なくなっている。例えば、DoEventsやGetSetting、SetSettingなど基本的なものも結構無い。関数の一覧はヘルプで以下を見れば見れるので必要とする関数があるかどうかを確かめてほしい。

  • [Microsoft eMbedded VisualBasic 3.0]-[Language Reference]-[Functions]配下のツリー

文法上の違い

プログラミング言語として違いもある。まず、ユーザ定義型が使えない。また、Switch文で範囲指定が出来ない。基本的にVBScriptなのだそうだ。

さいごに

このように違いも大きいのだが、私の印象ではunicodeに手こずることがないので、Visual-C++よりも移植は楽かもしれない、というイメージである。さらにさまざまなテクニックを見つけてはこのページに追加していきたいと思う。もし、誤り等がありましたら、是非メールもしくは掲示板にご意見等ください。

関連URL

■感想・コメントは、WindowsCE FAN の掲示板 (BBS) へお願いします。

===更新履歴===

2001/01/20    作成
2001/01/21    文法上の違いについて追加

古原伸介

トップページへ
eMbedded Visual Tools 3.0 入門 INDEX


Copyright (c) 2001 impress corporation All rights reserved.
編集部への連絡は mado-no-mori-info@impress.co.jp まで