AIで楽曲を楽器やボーカルに分離する
Miku-nical「みくにかる」〜Program館〜
Miku-nical「みくにかる」
Miku-nical「みくにかる」〜Program館
Miku-nical「みくにかる」
=SiteMenu=

図書紹介
-Books-

OSの話
-Windows/Linux-
プログラム
-Programming-
壁紙集
-Wall Paper.-
= プログラムの素「VisualBasic編」=

KnowHow集などとだいそれたものではありません
自分がプログラムをする上で得た知識などをまとめておこうと思っています

006.スタートアップの設定「"Sub Main"とは」

プロジェクトの設定で、「スタートアップの設定」があるのをご存じですか?
基本的には、VBのプログラムはメインとなるフォームから始まりますが、それ以外に「Sub Main」から開始する事が出来ます。

例えば、前回の「多重起動の防止」と前々回の「プログラムの終了方法」について、両方の内容を満たそうと思うと、結構大変です。多重起動の防止を"Form_Load"に書いた場合、"Form_Load"では"Unload"できませから、"END"で終了するしかありませんが、前々回で"END"はなるべく使わない方がよいと、言っています。これは、プログラム起動時に行いたい他のチェック処理でも同様になると思います。
解決方法としては、フォームの上に短いタイマを置いて、その中で処理をさせる...といったようなものがあります。

このような時に、"Sub Main"を使用すると以下のようにスマートに解決する事が出来ます。
新規「標準モジュール」を作成して、その中に記述します。

Sub Mainを使った多重起動の防止方法

Sub Main()

If (App.Previnstance = false) Then <- 二重起動の判定

frmXxxxxx.Show <- 対象となる画面を表示する(プログラム起動)

End If

End Sub


"Sub Main"で、他のフォーム等をロードしなければ、プログラムは"End Sub"で抜けて、そのまま終了します。
上記例では、多重起動の判定処理を行っていますが、

定義データ等の読込み処理とスプラッシュ画面の例

Sub Main()

dim bolRet as boolean

frmSplash.Show <- スプラッシュ画面の表示
DoEvents

bolRet = DataRead()

Unload frmSplash <- スプラッシュ画面を閉じる
set frmSplash = Nothing

if (bolRet = true) then

frmXxxxxx.Show <- 対象となる画面を表示する(プログラム起動)

End If

End Sub



のように書く事も可能となります。
普通にVBを使っているとなかなか気付かない"Sub Main"ですが、意外と便利かもしれません。

尚、ここに書かれている方法を実際に行っての問題については一切関知しませんので、各自の責任にて行って下さい
ご意見ご感想はこちらまで <mikunical@mbp.nifty.com>
--