- 締切済み
VBをVBAに ソースコードあり
二度ほど こちらを利用させていただき、一歩ずつ理解してきているのですが、回りにVB、VBAを使っている方がいなく、相談出来る所がここしかなく また投稿させて頂きました 今回 迷っている事は VBのソースコードがあり それをVBAで実行する場合、どこで宣言すればいいのか という事です VBの~ソースコード~ メインふぉーむ データ受信関数 Private Sub RF720CLib_RFIDMessage(ByVal Message As String, ByVal MessageSize As Long) Dim code As String Dim cmd As String Dim body As String code = RF720CLib.GetResponseCode(Message, MessageSize) cmd = RF720CLib.GetCmdCode(Message, MessageSize) body = RF720CLib.GetResponseBody(Message, MessageSize) If code = "00" Then If cmd = "RD" Then For cnt = 0 To csvline - 1 If Vegetable(cnt).m_ID = body Then End If Next End If If cmd = "IS" Then ReadStep = ReadStep + 1 End If End If End Sub ↑ こちらで RF720CLib ライブラリーを使い RD リードなどを行ってるとは思うのですが VBAの場合 フォームをロード時に イベントとして宣言すればいいのでしょうか? それとも 上記のはVBですので VBAで使う場合 また新しく作り変えなければいけないのでしょうか? VBとVBAは全く違うもの として考えた方がいいのでしょうか RF720CLibは アクティブXコントロールでVBAでも使えました とても 困っております 宜しくお願いします
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- redfox63
- ベストアンサー率71% (1325/1856)
VBAで開発不可といったこともありえると思います 実際には使用可能だが 開発元では十分な検証を行っていないような場合『使えますよ』といった明快な回答ではない場合もありえるでしょう ライブラリーが ActiveXコントロールならフォームに貼り付けるだけで参照設定もされます
- s-suzuki
- ベストアンサー率50% (3/6)
あまりわからないですが、一応回答してみます。 問題のコードはPrivate Subなので、このプロシージャを呼び出している部分が、VBのメインフォーム?のどこかにあるはずです。 その呼び出しを行っているのが、VBのメインフォームのMainプロシージャにあるなら、この問題のコードは起動時に呼び出されるべきものなので、アプリケーション起動時のイベントに書いてもいいでしょう。 ですが・・・。 VBとVBAは、内部関数が若干違うものの、基本的には同じものです。 なので、このPrivate Subプロシージャは、そのままコピーして、VBAに貼り付けるのが一番でしょう。 (Privateなので、これを呼び出しているコードがあるモジュールと同じモジュールに書きます) この問題のプロシージャが書いてあるVBのモジュールをよくみて、Private宣言の変数があれば、それもコピーします。 あとは、これを呼び出している部分を見つけて、それをどこに書くかです。 VBのMainプロシージャに書いてある場合は、VBAの起動イベントが起こる部分に書きましょう。 <VBとVBA間の移植の場合に気をつけること> (1)起動時の処理を書く場所が違う (2)VBA特有の内部関数(Excelでしか使えない関数・Accessでしか使えない関数)をどう処理するか (3)タイマーイベントが書かれてあるところを見落としてないか あと、参照設定も忘れずにしておきましょう。 雑な回答ですみません。
- redfox63
- ベストアンサー率71% (1325/1856)
VBもVBAも基本的な部分は同じです VBAは その名のとおり Applicationに特化したオブジェクトやメソッドがあります たとえば Excel.VBAでしたら Applicationオブジェクトは Excel自身の参照ですし CellsやRangeといった ワークシート関連のオブジェクトや関数などが利用できます VBのFormに似た機能もUserFormとして組み込まれています # 完全に一致はしていませんが … ライブラリRF720CLibを提供しているところに VBAで動作可能なのか聞くといった事がまず先決だろうと思います 動作保障しないが これこれの手順で使用は可能です といった返答が期待することが出来ます また、そのライブラリのライセンスがどのようなものなのかも確認しましょう 開発者に対してのライセンスなのか、特定のパソコンに対するライセンスなのかといったことです 『会社にあるから使ってもいい』『友達から借りてきたからOK』 などはライセンス違反になる可能性があります ライブラリの提供形態がActiveX系なら ツール > 参照設定などで使える可能性があります ですが これは 先のライセンス項目などをクリアした上で行いましょう 提供もとの情報などを投稿すると より具体的な回答が付くと思いますよ また ご自身の開発環境も明記したほうが良いでしょう
お礼
提供先に さきほど メールを出し返答待ちですが VBで対応していて VBAで否対応という事もあるのでしょうか? ライブラリに関しては 開発用ライブラリという事で平気だとは思うのですが ライブラリを インストールし ActibeXでフォームに貼り付け コードを書き込むだけでなく 参照設定なども必要なのでしょうか? そちらは 全くしていなかったので 場所指定などもしてみます また情報を具体的にという事だったので ソースや開発環境など 書き込み 新しく投稿しました もしお時間がありましたら アドバイスお願いします http://qanda.rakuten.ne.jp/qa3523237.html
お礼
アプリケーション起動時のイベントは どちらで宣言すればいいのでしょうか? フォームロード時 フォームOPEN時とかで イベントとして 記入するのでしょうか? 全くの無知で申し訳ありません 移植で気をつける事 大変わかりやすく ありがとうございます VBで タイマーイベントも書いてあったのですが そちらは そのまま移植でも平気でしょうか? http://qanda.rakuten.ne.jp/qa3523237.html また指摘があり ソースコードの全般を乗せました もし宜しければ アドバイスお願いいたします