NC指示書用EXCELマクロ 続き その1

何かと手間のかかっているNCデータの加工指示書ですが、以前はWorkNCから出力される指示書を取り込むマクロを作成しました。今回は、NCデータの軌跡を描画した絵を何とかしたいと思います。現状の作業としては
 1.以前作成した指示書をコピーしてくる
 2.NC-Drawを使用して、NCデータの軌跡を加工内容順にアイソメで表示させる
 3.表示させた軌跡をWinShotを使用してハードコピーをとる
 4.指示書のEXCELファイルを開いて以前の軌跡図を3.でとったハードコピーと差替える
 5.シートが足りなければ作成してハードコピーを挿入、余分なシートがあれば削除する

以上です。加工される金型の形状によって使うカッターの数も違うので、コピーを張り付けるシートの数も変わりますが、通常は10シートくらいです。シートの名前は”NC絵1”、”NC絵2”と”NC絵”の後に数字をシーケンシャルに手動で付けています。ハードコピーは「マイピクチャ¥Winshot」フォルダにWS000001.bmp、WS000002.bmpという風に”WS”の後に数字がこちらは自動的に付けられます。

これを前提としてマクロを作成します。まずは、流用する指示書のブックから”NC絵*”という名前がついたシートを全てを削除したいと思います。シートの削除は前回ので、

Worksheets("ワークシート名").Delete

とわかってます。ただ今回の場合後ろに番号がついていますが、いくつあるかは決まってません。頭に”NC絵”と付いたシートを探す方法を調べると、Like演算子がありました。ヘルプを見ると

result = string Like pattern

result 任意の数値変数
string 任意の文字列式
pattern パターン マッチング規則に従った任意の文字列式

となってますから、これを使います。ブックにあるシート名を全部調べてカウントします。
また、ブック内のシート数は

Worksheets.Count

で計算出来ますから、最初にシート数を調べて、シート数分名前を確認します。シート名に”NC絵”が含まれていたら、シート名を保存します。作成したのが次のマクロです。

SheetNum = Worksheets.Count   'Book内のシート数をカウント
DelSheetNum = 0            '削除シート数

For i = 1 To SheetNum
Worksheets(i).Select
If Worksheets(i).Name Like "NC絵*" Then    Like演算子を使ってます
DelSheetNum = DelSheetNum + 1
DelWSName(DelSheetNum) = Worksheets(i).Name
End If
Next i

最初”NC絵”を見つけた時に同時に削除すれば、簡単だと思ったのですが、削除するとインデックスも変化してしまい、うまくいきませんでした。そこで、削除しないで名前と数を保存するだけにしています。
次に”NC絵”の数分だけシートを削除する様にしました。またこの時に確認メッセージが出ると面倒なので、メッセージを出さない様にして、一気に削除しています。最終的に作成したマクロです。


Sub NC絵削除()

Dim SheetNum As Long      'ブック内の全シート数
Dim DelSheetNum As Long    '削除するシート数
Dim DelWSName(20) As String  '削除するシートの名前
Dim i, j As Long

SheetNum = Worksheets.Count 'Book内のシート数をカウント
DelSheetNum = 0 '削除シート数

'ブックの中から"NC絵"を含むシート名を全部検索、保存
For i = 1 To SheetNum
Worksheets(i).Select
If Worksheets(i).Name Like "NC絵*" Then
DelSheetNum = DelSheetNum + 1
DelWSName(DelSheetNum) = Worksheets(i).Name
End If
Next i

'"NC絵"を含むシートの削除
Application.DisplayAlerts = False   '確認メッセージを出さない
For j = 1 To DelSheetNum
Worksheets(DelWSName(j)).Delete
Next j
Application.DisplayAlerts = True

End Sub

もっとうまいやり方とかあると思いますが、私の知識ではこの程度です。自家使用なので動けばいいと言うところです。とりあえず、シートの削除までです。
関連記事

スポンサードリンク



web拍手 by FC2

スポンサードリンク


[ 2012/04/13 20:13 ] ソフト関係 | TB(0) | CM(0)

コメントの投稿













管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL