2パターン用意。まあ前者を使うのが簡単だし確実で正解である。
'--------------------------------------------------------------- ' 関数名: IsVBCompiled ' 機能 : プロジェクトがコンパイル済みか調べる ' 引数 : なし ' 返り値:True…コンパイル済み、False…VB開発環境内プロジェクト '--------------------------------------------------------------- Public Function IsVBCompiled() As Boolean 'VB環境下ならFalse、EXEならTrueを返す On Error GoTo ErrHandler '0で除算して意図的にエラーを起こす Debug.Print 1 / 0 'EXEなら上のコードでエラーが起きない IsVBCompiled = True Exit Function ErrHandler: End Function
'ロードされている実行モジュールのフルパス名を取得する
'--------------------------------------------------------------- ' 関数名: IsVBCompiled ' 機能 : プロジェクトがコンパイル済みか調べる ' 引数 : なし ' 返り値:True…コンパイル済み、False…VB開発環境内プロジェクト ' 備考 :とりあえずVB5.0専用 '--------------------------------------------------------------- Public Function IsVBCompiled() As Boolean Dim TempBuff As String * 256 Dim ModuleFileName As String Dim ModuleFileNameLen As Long '実行モジュールのフルパス名を取得する ModuleFileNameLen = GetModuleFileName(0&, TempBuff, Len(TempBuff)) 'NULL削除 ModuleFileName = UCase$(Left$(TempBuff, ModuleFileNameLen)) 'プロジェクトがコンパイル済みか調べる 'VB4.0の場合は "\VB4.EXE" としてね 'VB6.0の場合は "\VB6.EXE" としてね IsVBCompiled = Not (Right$(ModuleFileName, 8) = "\VB5.EXE") End Function |