寸法線の前後に文字列を追加するマクロ|CATIAマクロの作成方法

今回はお問い合わせより頂いた内容です。

Drawing 寸法テキスト前後の文字挿入

寸法テキスト前後の文字を挿入して使っているのですが、文字の履歴が5つしかなく
もっと履歴を増やせたらと思っていますが、ご存知ありませんでしょうか?
もし、設定で出来なければマクロを作成(ざっくりと言い方ですみません。)していただけること可能でしょうか?

お問い合わせの回答としては5つより多くする設定することはできません
CATIAのヘルプページ「Adding Text Before/After the Dimension Value」を見ても、テキストの履歴を増やす方法は書かれていないのでおそらく不可能です。

というわけで、今回は簡単なマクロを作成しました。
必要最低限の機能しか付けていませんが、実用性はかなり高いです。

コード解説は行っていませんが、コード内にコメント文を多く記載しているので処理内容は理解できると思います。

 

マクロの機能

今回作成したマクロは「選択した寸法線の前後に文字列を追加するマクロ」です。
上のgif画像を見ればマクロ機能はある程度理解することができると思います。

寸法線以外のオブジェクトを選択してもマクロの実行は可能ですが、選択するオブジェクトが多ければ多いほど処理時間は長くなるので、何も考えずにシート全体を選択するなどのことは避けましょう

また、プルダウンメニュー内にある項目以外の文字列を入力したい場合は、プルダウンメニューに直接入力して実行することもできます。(このときの値は項目には追加されない一時的なもの)

プルダウンメニューの項目を編集するにはテキストファイルを変更する必要があります
(テキストファイルについては次項の「事前準備」を参照下さい)

具体的な機能は以下のとおりです。

  マクロの機能まとめ ・選択した寸法線の前後に任意の文字列を追加する
・寸法線は複数選択していても可
   (寸法線以外のオブジェクトを選択していても可)
・寸法線が複数選択されている場合はすべての寸法線に同じ文字列が追加される
・上側のプルダウンメニューの内容がテキスト前側に追加する文字列
・下側のプルダウンメニューの内容がテキスト後側に追加する文字列
・プルダウンメニューの横にあるチェックボックスでテキスト追加をしないこともできる
   (チェックボックスにチェックが付いている場合のみテキストが追加される)
・プルダウンメニューの値はテキストファイルの編集により変更可能(事前準備参照)
・プルダウンメニュー内に直接入力した文字列の利用も可能
   (プルダウンメニュー内には入力した文字列は残らない)
・追加され散る文字列を消したい場合はプルダウンメニューの空白を選び追加する

 

事前準備

本マクロは事前に「ユーザーフォーム」と「テキストファイル」の準備をしておく必要があります。
ここの準備をしておかないと、以降で紹介するコードを実行してもエラーが発生するので先に済ませておきましょう。
 

ユーザーフォームの準備

今回のマクロはユーザーフォームを使います。
ユーザーフォームを作成し、上画像のようにコントロールを配置して下さい。
また各コントロールの名称も上画像にならってそれぞれ変更してください。
(たとえば、ユーザーフォームの名称は「UF_Add_Text」に変更)

コントロールの名前と数さえ合っていれば本マクロの実行自体は可能なので、自身の使いやすさに合わせてコントロールの配置は変更してもらっても構いません。

ユーザーフォームの作成が面倒な方、作成したけどうまく実行できない方は下記よりユーザーフォームのデータ(.frm/.frx)をダウンロードしてください。

ユーザーフォームデータ(zip)のダウンロードはこちらをクリック

ダウンロードしたzipファイルを解凍すると「UF_Add_Text.frm」「UF_Add_Text.frx」という2つのファイルが入っています。

VBEの[File]タブの[Import File]より「UF_Add_Text.frm」をインポートすればユーザーフォームが読み込まれます。(frxファイルは自動的に読み込まれるのでfrmファイルと同じ階層(フォルダ)に入れておく必要があるので注意しましょう)
 

テキストファイルの準備

今回のマクロではテキストの前後に追加するための文字列をユーザーフォームに記憶させておく必要があります。これはVBE上で指定することもできますが、本マクロを共有することを考えると、好きなテキストを指定できるよう各々がカスタマイズできるようにしておいた方が親切です。

というわけで、今回はテキストファイルを1つ作成し、そこに書かれている値をComboBox(プルダウンメニュー)の中に入れていくようにします。つまり、ここで用意するテキストファイルの値を変更すればComboxの内容も変化するということです。

まずはテキストファイルを1つ作成します。
(ここではDesktopにAdd_Text_Macro_ComboBox_Value.txtというファイルを作成します)

上画像のように「,」区切りでComboBoxに入れたい値を書いていきます
1行目にはテキストの前側に入れたい文字列を、
2行目にはテキストの後ろ側に入れたい文字列をそれぞれ入力します。

また、3行目には「,,True,True,0,0」と入力しておいてください。
3行目の値はユーザーフォームの最新の状態を保存しておくための値が自動的に入るので特にいじる必要はありません。今回のマクロでは、以前ユーザーフォームを閉じたときの位置や値を記憶しておき、次に開くときに前回の状態を再現することができます。
つまり3行目は前回の状態を再現する際に必要な情報を保存しておくための行というわけです。

 

サンプルコード

事前準備が終わったら標準モジュールを作成し、下記のコードを入力します。
ユーザーフォームをダウンロードしていない方は、ユーザーフォームのコードも入力して下さい。

標準モジュールの「Sub CATMain()」を実行すればユーザーフォームが呼び出されます。
あとはCATIA上で寸法線を選択し、[Run]ボタンを押せば文字列が追加されます。
  

標準モジュールコード

※下記コードの「txt_path」には先ほど用意したテキストファイルのフルパスを入力して下さい。

 

ユーザーフォームコード

 

まとめ

今回は「寸法線の前後に文字列を追加するマクロ」についての内容でした。

「寸法線の前後に文字列を追加する」という処理自体は数行で書ける処理ですが、ユーザーフォームとテキストファイルを使い利便性を高めた結果、今回のような長いものとなってしまいました。

マクロの実行としてユーザーフォームボタンを使うことで、今回のようなユーザーフォームが開いている間は何度でも実行可能なマクロが作成可能になります。

また、何も知らないユーザーからしてもかなり使いやすいマクロとなるので、マクロになれてきた方はユーザーフォームを取り入れていくことを個人的にはオススメします。
 

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

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

 

CATIA, CATIAマクロ, VBA

Posted by Lic