Excelの値を取得しProduct(インスタンス)の記述欄に書き出す|CATIAマクロの作成方法

今回の記事はマクロ案募集でいただいた内容です。
送って頂いた内容は以下のようなマクロです。

ディスクトップにエクセルシートを保存しておきエクセルのA1の値を読み込み
その値を取得して、下記のインスタンス名の記述に代入する

CATIA VBAでExcelを取得するには事前に多少の設定をする必要があります。
CATIAマクロでExcelを操作する方法もあわせて参照してください。

 

マクロの機能

今回作成したマクロは選択したExcelの「A1」の値を取得し、インスタンスProductの記述欄に書き出すマクロです。具体的な機能は以下のとおりです。

 icon-wrench マクロの機能まとめ ・選択したProduct(インスタンス)の記述欄に選択したExcelファイルのA1の値を書き出す
・「マクロ実行 → Product選択 → Excelファイル選択」の順で選択

 

サンプルコード

マクロのコードは以下のとおりです。

 

コード解説

アクティブドキュメント定義

まずはじめにアクティブドキュメントの定義をします。
今回のマクロはCATProductでのみ有効なものなので、アクティブドキュメントがCATProduct以外の場合はTypeName関数を使った条件分岐でマクロを終了するようにしています。

つまり、アクティブドキュメントがCATProductの場合のみ変数「doc」にアクティブドキュメントを代入し、マクロの処理を続けます。
 

Product定義

次にProductを定義します。このProductの記述欄にExcelの値が書き出されます。
ここでは「Selectionオブジェクト」の「SelectElements2メソッド」を使って、ユーザーが選択したProductを定義します。
 

Excel定義

次にCATIA VBAでExcelを操作できるようにExcelを定義していきます。
参照設定を行っていないとエラーが起こるため「CATIAマクロでExcelを操作する方法」をみながら事前に設定を行う必要があるので注意してください。

これによりCATIA VBAでExcel VBAを使用することが可能になります。
 

ユーザーが選択したbook/sheet取得

次に値を取得するためのExcelブックとそのシートを取得します。
先ほど定義したExcelオブジェクトの「GetOpenFilenameメソッド」を使って、ユーザーに任意のExcelファイルを選択させます。

選択されたExcelファイルのブック、シートを定義します。
 

記述欄に書き出し

最後にProduct(pro)の記述欄に先ほど取得したシートの「A1セル」の値を書き出します。
A1セルの値は取得したシート(ws)を使って「ws.Cells(1, 1).Value」と書けばOKです。

プロダクトの記述欄(インスタンス)の値は「DescriptionInstプロパティ」で表されます。
つまり「pro.DescriptionInst = desc」と書けば、取得したExcelの値を書き出すことができます。

 

まとめ

今回はExcelの値を取得しProduct(インスタンス)の記述欄に書き出すマクロについての内容でした。

今回のマクロで重要なのは「Excelの値を取得する方法」「Productのインスタンスの記述欄の値を変更する方法」の2つです。これさえ理解できれば複数の値(文字列)を複数のProductの記述欄に書き出すことも可能になります。
 

サンプルマクロ集に戻る
目次へ戻る

 

 CATIAマクロを本気で勉強するなら

CATIA, CATIAマクロ, VBA

Posted by Lic