DelFusa Blog 総本山

プログラミングの話題とかです。

NEW | PAGE-SELECT | NEXT

≫ EDIT

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

| スポンサー広告 | --:-- | comments(-) | trackbacks(-) | TOP↑

≫ EDIT

Excelアプリケーション作成フレームワーク



  〃 ⌒ ヽ
  \● /Λ,,∧
    ∩ミ ゚Д゚彡 /ヽ
     ミミ,,   ,,つ ● )
    ⊂、 ,,ミ  \ノ
      し'       ヨットット

さて、Excel Make Application Framework の新バージョンをリリースしておきます。
下位互換あるので、旧版は破棄しておきます。

ExcelMakeApplicationFramework ver1.2.2

ExcelMakeApplicationFramework.zipをダウンロードして解凍してもらうと
次のファイルが展開されます。

  ExcelMakeApplicationFramework  フォルダ
    Project01          フォルダ
      program         フォルダ
        Project01.xls    ファイル
      Project01.vbs      ファイル
    version.txt         ファイル

000550.png


各ファイルについて説明しておきます。


・ version.txt
バージョン履歴が記入されています。

・ Project01.vbs
ExcelMakeApplicationFrameworkで作られるアプリケーションを
起動するためのスクリプトです。
これをexeファイルのようにして起動すれば
アプリケーションとして実行されます。

ファイルの先頭で、
'----------
Const ProgramFolderName = "program"
'----------
とあり、ここでプログラムのある下位フォルダ名を
指定する事ができるようになっています。

コマンドライン引数を
アプリケーション本体に伝達するようにしているので
普通のアプリケーションのように
アイコンへのドラッグ&ドロップでの
ファイルパスを渡すような動作が可能です。

xxxx.vbsと、名前を変更してよいです。

その際には .\program\Project01.xls
も、ファイル名変更してください。


・ Project01.xls
アプリケーションを作成するための本体プログラムです。
この中のFormMainを編集してもらうことで、
アプリケーションの見た目や機能を実装する事ができます。

中身のプログラムの説明です。
プログラムの起動は
ModuleMain の Function Main を呼び出す事で
FormMain.Show によって
画面が表示されます。

画面の動作は Function Main 内の
  Call FormMain.Initialize( _
    TaskbarButton:=True, _
    FormButtonMinimize:=True, _
    FormButtonMaximize:=True, _
    FormButtonClose:=True, _
    ThickFrame:=True, _
    TopMost:=False)
これによって初期値を制御でき
また、引数名と同じプロパティを持つので

プログラム実行中に切り替える事ができます。

Iniファイルを使って、前回実行時の
画面の位置が保存されます。

Main関数には2つの引数があります。
Function Main(ByVal Args As String, Value As String) As String

Argsはコマンドライン引数を伝達する用に使い、
ValueはVBScript側から何らかの状態を受け取るために
用意している引数です。

必要ない場合にはValueは無視しておいてください。


残念な制限として2つあります。
一つは、Excel2010以下の場合のみの制限。
(試してないけど、ExcelMakeApplicationFrameworkは、Excel2003くらいまで動くと思います。)

Excel2013の場合は、ExcelがSDIなのでWindowがぶつからないのですが

Excel2010未満の場合は、他のExcelファイルを開く時に
ExcelMakeApplicationFrameworkの隠れExcelに巻き込まれてしまうので、
その前に、ダミーのExcelプロセスを1つ立ち上げているので、Book1が起動します。
OFFICE2013ならまあまあキレイに動作してくれます。
(スクリプト側でバージョン判定しています)


もう一つの制限。
タスクバーへの格納。タスクバーボタンの挙動なのですが
ExcelMakeApplicationFrameworkはプロセスがExcel.exeなので
エクセルファイルとおなじタスクバーボタングループに組み込まれてしまいます。

これを分離は出来なかった。
だれか出来たら、やり方教えてほしいっす。

プロセスパスを偽装って、無理だよね?

スクリーンショットを載せておきますので、ご参考にどうぞ。

screen.png


簡単な説明ですがこんなところになります。

2014/05/22(木)追記
そういえば、Excel Make Application Framework と、付属の DelFusa Library for VBA のオープンソースライセンスは、二条項BSDライセンス (2-clause BSD license) としておきます。ヨロ。
スポンサーサイト

| 未分類 | 00:34 | comments:0 | trackbacks(-) | TOP↑

COMMENT















非公開コメント

PREV | PAGE-SELECT | NEXT

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。