Jw_cadで図面を編集している際、全角で入力された英数字を半角に修正したい場合があります。標準機能のみで多数の文字を一括変換するのは難しいため、今回はExcel VBAとDXFフォーマットを活用して、全角文字を半角に自動変換する手法を解説します。
変換処理の仕組み
Jw_cadで扱うことができるDXFファイルは、人間が読めるテキストデータで構成されています。この性質を利用することで、Excel VBAからファイルの中身を直接読み書きすることが可能です。
全体の流れは以下のようになります。
DXFファイルをテキストとしてExcelに読み込む
文字データが記述されている箇所を検索する
全角文字を半角文字に書き換える
新しいDXFファイルとして保存し直す
ここでは、元データとしてマルチテキスト(MTEXT)で作成された文字を含むDXFファイルを例に解説します。
Excel VBAによる変換手順
ExcelのVBA(マクロ)を用いて、以下の手順で変換プログラムを構築します。
1. DXFデータの読み込み
VBAの Line Input ステートメントを使用し、DXFファイル内のテキストデータを1行ずつ読み込みます。
読み込んだ内容は、Excelのワークシート(「変更前」シートなど)に順番に書き出して記録しておきます。同時に「変更後」シートにもベースとなる内容を転記します。
2. 文字列の検索と抽出
Excel上で文字のデータを検索します。 今回のデータ構造では、「MTEXT」という記述が見つかった行から数えて26行下に、実際のテキスト内容が格納されています。この規則性を利用して、変換対象となる全角文字のセルを特定します。
3. 半角への変換
対象の文字列を見つけたら、全角文字を半角に変換します。この処理にはVBAの StrConv 関数を使用します。
4. 新規DXFファイルとしての書き出し
ファイルの最後まで読み込みと変換の処理が終わったら、Print ステートメントを使用して、新しいテキストデータとしてファイル(例:テスト.dxf)を書き出します。
変換結果の確認
VBAの実行後、新しく生成されたDXFファイルをJw_cadで開きます。 元の図面で全角だった英文字が、指定通りに半角へ修正された状態で表示されます。
Jw_cad単体では手間のかかる文字の全半角変換も、Excel VBAとDXFの構造を組み合わせることで自動化が可能になります。
動画
動画で解説しました。ご参照ください。