LabVIEWでのActiveXの使用法のサンプルが見つからなかったのですが、何を参考にすればよいのでしょうか?



使用ソフトウェア:
使用ソフトウェア・バージョン: N/A
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: N/A

問題: :多くの有用なLabVIEWでActiveXを使用したサンプルがあるにも関わらず、サンプルが存在しないActiveXコントロールがいくつかあります。もしサンプルが存在していたとしても、拡張機能が多彩なため、その中に私が求めている機能が示されていないかもしれません。どのようにすればLabVIEWで使用する可能性のあるActiveXコントロールと関連したサンプルをみつけることができるのでしょうか?

解決策: ActiveXコントロールは使用する言語でサポートされているのであれば、全ての言語から同様に呼び出すことが可能なように作成されています。
それぞれの言語における唯一の違いは呼び出しの際の構文のみです。そのため、LabVIEWでActiveXコントロールの使用法が理解できるようなサンプルがなかった場合には、他の言語でのサンプルが近い形で使用されていますので参考にすることができるはずです。
例えば、エクセルで選択したセルの範囲の一番下の境界を二重線にしたい場合、LabVIEWのサンプルはありませんが、インターネット上にはVisual Basicなどのサンプルを見つけることができます。
サンプルコードは以下のようになります。

Visual Basic Example
Dim objExcel As Excel.Application
Dim objWorkbook As Excel.Workbook
Dim objSheet As Excel.Worksheet

Set objExcel = CreateObject("Excel.Application") '(A)
Set objWorkbook = objExcel.Workbooks.Add '(B)
Set WorkSheets = objWorkbook.Worksheets(1) '(C)

Worksheets("Sheet1").Range("A2", "B2").Borders(xlEdgeBottom).LineStyle = xlContinuous '(D)

Visual BasicのコードからLabVIEWのコードへの変換
まず始めに、Visual Basicのコードから必要なプロパティを調べます。このサンプルではLineStyleがそのプロパティになります。
次に、このプロパティにアクセスするために必要なプロパティノードやインボークノードを調べる必要があります。
Visual Basicから把握できる一般的なコードの流れは次のようなものです。

Excel Application->Workbooks->Workbook->WorkSheets->Sheet->Range->Borders->Border->LineStyle

これはLabVIEWでこの操作の流れを模倣したものです

LabVIEWのブロックダイアグラムとの一致


上図の数字を参照して下さい

(1) (A)と一致します。
(2) (B)と一致します。 Visual Basicではメソッドとして実行されているのでLabVIEWではインボークノードが使用されていることに注意してください。
(3) (C)と一致します
(4) (D)のWorksheets("Sheet1")はWorksheetsメソッドのSheetの項目です。そのため、インボークノードのクラス名が'Sheets'になっています。この例では複数回この'item'の項目を選択します。また、これらは常にインボークノードを用いて扱います。
この作業の後にバリアントデータが変換されてから(5)の項目の"Worksheet"のリファレンスに接続されていることに注意してください。
(5) このインボークノードは".Range("A2","B2")"の項目と一致します。これらは共に"sheet"で選択された範囲に対して設定されます。
(6) 境界線を修正するためのborderプロパティは修正したい境界を選択した後に取得します。
(7) このインボークノードは ".Borders(xlEdgeBottom)"の項目と一致します。Indexに接続されている定数ですが、これはVisual Basicと同様の値をLabVIEWでも右クリックのショートカットメニューより定数を作成して設定することができます。
(8) borderを選択すると、".LineStyle"に一致するLineStyleにアクセスすることができます。LineStyleはバリアントデータタイプですので、"border"クラスのIndexの項目で設定したような列挙体を用いた設定はできません。そのため、色々な値を設定してみてどの値を使用した場合に希望する変更が行われるかを確認していただく必要があります。
LabVIEWのサンプルのように簡単ではありませんが、Visual BasicのコードをLabVIEWと対比させてコードを生成することが可能です。 ActiveXは様々なプログラミング言語に準拠していますので、この手順はVisual Basicのみには限られず他の言語も参照することができます。そのため、もし他の言語でLabVIEWで使用したいActiveXのコードのサンプルが見つかった場合はLabVIEWでのプログラミングに役立つ可能性があります。下記にActiveXのサンプルを探すために参考となるサイトがございますので参照していただければと思います。

関連リンク: Extreme Visual Basic Talk [external]
Extreme .NET Talk [external]
Code Guru Forum [external]

添付:


ExcelExample.gif - ExcelExample.gif



報告日時: 09/15/2004
最終更新日: 11/30/2004
ドキュメントID: 3DE8F4FD