CATIAマクロでExcelを操作する方法|CATIAマクロの作成方法

今回はCATIAマクロでExcelを操作する方法を解説していきます。
Excelと連携することで仕事内容によっては非常に効率を上げることができます。
かなり情報も少なく、難しく感じる内容ですがここで理解しておくと今後の役に立つと思います。

今回学ぶことのできる内容は以下のとおりです。

icon-check-square CATIAマクロでExcelを操作する方法

また、PowerPointを操作する方法は下記ページで解説しているため合わせて参照ください。

 

CATIAマクロの事前準備

まずCATIAマクロでExcelを操作するには以下の2つの準備をする必要があります。

① CATIAマクロ内にExcelマクロのライブラリを読み込む
② CATIAマクロのコードにExcelを呼び出すための構文を書く

 

CATIAマクロ内にExcelマクロのライブラリを読み込む

CATIAマクロでExcelを操作するには大前提として「参照設定」というものでExcelマクロの固有オブジェクトを読み取ることができるように『ライブラリ』を設定する必要があります

デフォルトの場合、CATIAマクロではCATIA専用の固有オブジェクト(PartDocument,HybridBodyなど)のみを、ExcelマクロではExcel専用の固有オブジェクト(WorkSheets,Cellsなど)のみしか読み込むことができません。

そのためCATIAのVBE上でExcelの固有オブジェクトを書いても、CATIAマクロがそれを理解することができないためオブジェクトとして認識されません。

 icon-edit ライブラリとは 

『ライブラリ』とは簡単にいうとVBAのオブジェクトがまとめられた本のようなものです。

VBAはExcelやCATIAだけでなくPowerPointやAccessなど様々なソフトで使うことができます。

 
そして、それらのソフトにはそれぞれ特有の”固有オブジェクト”があります。
(たとえばExcelでいえば「セル」、パワーポイントでいえば「スライド」、CATIAでいえば「サーフェス」のようにそのソフトでしか使わないオブジェクトのこと)

 
これら全ての固有オブジェクトを1つのライブラリにまとめてしまっては、あまりにも量が膨大すぎて非常に扱いづらいものとなってしまいます。
そのためライブラリは各ソフトや各機能ごとに分けて用意されています
 
このライブラリをソフト(CATIA)に読み込ませることで、別のソフト(Excel)を操作するマクロを作成することができるようになります。

要はExcelマクロで使用しているライブラリを、CATIAにも読み込ませればいいということですね!

 

ライブラリの設定

次にExcelではどのようなライブラリが読み込まれているのかを確認します。
ExcelのVBEのメニューバーから[ツール]>[参照設定…]をクリックすると以下のようなウィンドウが立ち上がります。

名前から想像がつくと思いますがExcelのコードは「Microsoft Excel ○○.○ Object Library」に書かれています。(○○.○の部分はExcelのバージョンによって違います)

つまりこの「Microsoft Excel ○○.○ Object Library」をCATIAにも読み込ませれば「WorkSheets」や「Cells」などのExcelの固有オブジェクトを使うことができ、操作も可能になるということです。

ではCATIAに「Microsoft Excel ○○.○ Object Library」を読み込んでいきましょう。
CATIAのVBEのメニューバーから[Tools]>[References…]をクリックすると以下のようなウィンドウが立ち上がります。

このリストの中から「Microsoft Excel ○○.○ Object Library」にチェックを付ければライブラリの設定は完了です。
 

「Microsoft Excel ○○.○ Object Library」がリスト内から見つからない場合は手動で追加をする必要があります。

[References]ウィンドウの右側にある[Browsw…]をクリックします。

次にそのウィンドウのままExcelの実行ファイルの保存場所へ移動します。
[ファイルの種類]を[All Reference Files]に変え[EXCEL.EXE]を選択し、開くことで「Microsoft Excel ○○.○ Object Library」がリストに追加されます。

 

CATIAマクロのコードにExcelを呼び出すための構文を書く

ライブラリの設定ができたら後は以下のコードを書くだけです。
コードを書かないとライブラリを読み込んでいいても、Excelは使えないので注意してください。

icon-code Excelを呼び出す 

Sub CATMain()

On Error Resume Next
Dim appExcel As Excel.Application
Set appExcel = GetObject(, “EXCEL.Application”) 
If Err.Number <> 0 Then 
    Err.Clear
    Set appExcel = CreateObject(“Excel.Application”) 
End If
On Error GoTo 0
    appExcel.Visible = True
    Dim WB As Workbook
  Set WB = appExcel.Workbooks.Add

     
  ‘実行したい処理

 

End Sub

このコードに関してはあまり深く考えずに「Excelを使うときにはこのコードを書く」と丸暗記しておけば大丈夫です。(詳しく知りたい方は「GetObject」や「CreateObject」で検索してみて下さい)

これによりCATIAのVBE上でExcelの固有オブジェクトを使うことができるようになりました。
たとえば以下のコードを書くとExeclのA1に「Macro」と書き出すことができます。

icon-code Excelに書き出し

WB.Sheets(1).Cells(1, 1).Value = “Macro”

 

サンプルマクロ

ここではサンプルとして「パーツドキュメント内にあるすべての点の座標をExcelに書き出すマクロ」を紹介します。コードは以下のとおりです。

点の取得に「GetCoordinates」というメソッドを使っていますが、それ以外はCATIAの「Selectionオブジェクト」とExcelマクロの「セルへの入力」を使った単純なマクロとなっています。

上記のコードは最低限の内容しか処理できていません。
ここに「罫線を引く」「中央揃えにする」「小数点第2位を四捨五入する」等の処理を追加することで、もう少ししっかりとしたマクロにすることができます。そういった処理はExcelマクロの内容になるのでExcelと連携してマクロを作成するなら以下のような本を1冊持っておくと便利です。

マクロを理解することができるようになってきたら”動くだけ”でなく、デザイン面や利便性も考えていくとより良いマクロになっていくと思います。

 

まとめ

今回の内容をまとめると以下のとおりです。

icon-check-square CATIAマクロでExcelを操作するには以下の2つを行う必要がある

   ① CATIAマクロ内にExcelマクロのライブラリを読み込む
   ② CATIAマクロのコードにExcelを呼び出すための構文を書く
icon-check-square
 CATIAマクロでもExcelを操作する書き方はExcelマクロと同じ

Excelマクロの書き方は調べればほとんど出てきます。CATIAとつなげることでより効率よく作業を行える場面も多々あると思うので、ぜひ勉強してみて下さい。

会社によってはCATIAマクロの実行をExcelから行うところもあるようで、そういったところはソフトの連携方法を知っていないと意味がありません。(メンテナンスのしやすさや共有すること考えると、実際はそちらの方が多いのかもしれません)

「CATIAマクロ作れるからいいや」で終わらず、Excelとの連携もできるようになっておけばいろいろな会社で通用するスキルが身につきます。これを機にExcelマクロについて勉強してみるのもいいのではないでしょうか。
 

目次へ戻る
 

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

今回やった情報の少ない「CATIAとExcel」もしっかりと載っています。他にも「CATIAとPowerPoint」「CATIAとWord」の内容も記載されているので興味のある方にはオススメです。

 

2020年6月11日CATIA, CATIAマクロ

Posted by Lic