もっと手軽にActiveX
ここに載せてあるソースコードは、参考のために載せてあります
サンプルコードは、一番下にLZHとしてあります
Option Explicit '-------------------------------------- ' ActiveX DLLを使用していますが ' ActiveX系(Control,DLL,Exe) ' も同様にアプリケーションを実行すると共に ' ActiveXの自動インストール処理が行われ ' 使用可能になります ' ' # Group1でVBを実行したときは、 ' # プロジェクトエクスプローラの ' # Project1を選択して、 ' # VBのメニューの参照設定で ' # MyLibraryをチェックしたり ' # はずしたりして下さい '-------------------------------------- 'クラスを宣言します '参照設定でMyLibraryをチェックしているときは ' As library 'にするとVBのインテリセンス機能が働きます Dim m_clsLibrary As Object 'ループを脱出する終了フラグです Dim m_Quit As Boolean 'フォームのインスタンスを生成する前に呼び出されます Private Sub Form_Initialize() Dim strAxFile As String Dim strAxFilePath As String 'ActiveXファイルのフルパスを代入します strAxFile = "test_mylib.dll" strAxFilePath = App.Path & "\resource\" & strAxFile '---------------------------------- ' テスト用なので ' 実際に使うときはUninstall関数は ' ここで呼び出さない方 ' (InstallとCreateObjectのみ)が良いと思います '---------------------------------- 'ActiveXファイルをアンインストールします Uninstall GetSystemFolder & "\" & strAxFile '---------------------------------- 'ActiveXファイルをインストールします '下の行をコメントして下さい ' "ActiveXコンポーネントはオブジェクトを作成できません" '(ActiveXがインストールされていないエラー) 'とメッセージが出ると思います 'この関数は、指定したActiveXファイルを 'Systemフォルダに移動してインストールします Install strAxFilePath 'ActiveXのクラスのインスタンスを生成します 'CreateObjectの方がお手軽かと思います Set m_clsLibrary = CreateObject("MyLibrary.library") 'または、下記のようにする(参照設定でMyLibraryをチェックしたときのみ使えます) 'Set m_clsLibrary = New library End Sub 'フォームをロードしました 'フォームのインスタンス生成後に呼び出されます Private Sub Form_Load() 'フォームを強制的に表示させます Me.Show Me.Refresh 'キーの入力を監視するために 'ループします Do DoEvents '下記はMyLibrary(ActiveX)のメソッドのことです 'InKeyメソッドは、 'テンキーや特殊キーなどには未対応です Label2.Caption = "あなたは、""" & m_clsLibrary.InKey & """" & "を押しました" Loop Until m_Quit 'フォームを破棄します Unload Me End Sub 'フォームをアンロードします Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) '閉じるボタンを押しました If UnloadMode = 0 Then m_Quit = True Cancel = 1 End If End Sub |