Excelによるシミュレーション業務の自動化

*** 本内容はOffice(Excel) 2007時を記述したものです ***

 もはやWindowsの標準アプリケーションと言ってもよいMicrosoft Excel。 TRYCUTファミリーお使いの方も少なくとも一度は起動してみたり利用したことがある ことでしょう。しかし残念なことに、この Excel が 極めて強力なツール であることがあまり知られていないのが現状です。

 もし、一括してシミュレーションを自動実行し、同時に加工指示書を出してくれるようなアプリケーション ・・・ そんなのがあったら欲しいなんて思ったことがある方も多いのではないでしょうか。

 本サイトでは既にバッチファイルを利用したシミュレーションの自動化なども紹介してきましたが、 これらで紹介していたコマンドの組み合わせでは加工指示書など細かな書式を設定するのには 少々無理がありました。しかし、Excel の能力を引き出すならば十分に体裁を整えることができます。

 実はExcelにはコマンド群を遥かに凌ぐ機能を持つマクロ(VBA)が装備されているのです。 あまり知られていないのは、強力すぎるためにデフォルトでは Excel 自身がこの機能を無効にしている為も あるかもしれません。全く予備知識のない状態で使用するにはあまりにも色々なことが出来てしまい 危険な側面を持ち合わせています。ここではマクロを使用するにあたっての注意事項、有効にする方法、簡単な 加工指示書作成例を紹介します。


マクロを使用するにあたっての注意

 Excel自身は、デフォルト(初期状態)ではマクロを無効にしています。なぜならば、 悪意のあるマクロも簡単に作成できてしまうからです。実際、マクロウイルスとよばれるものも存在します。 知らずにマクロを有効にして開いてしまうだけで感染してしまいます。 感染してしまうと個人情報が流出したり、重要なデータが削除されたりする可能性もあります。

 マクロを有効にして利用できるようにするにはセキュリティレベルを落とさなくては なりません。 自分のPCは自分で守るということを常に意識しておく必要があります。把握していないマクロを含む ファイルが存在したり、外部から入ってくる可能性があるならば、決してマクロを有効にしては いけません。


マクロを有効にする方法

 Microsoft Office 製品は 2007 で大幅に変更されました。 Excel も例外ではありません。したがって、これについては別途に解説いたしますが、 旧バージョンのものは若干の違いはあれ、基本的には同様の操作でマクロを有効にできます。 バージョンごとの異なる部分は Excel のヘルプを参照してください。 ここでは代表として Excel 2000 で解説します。

 まず、Excel を起動し、メニューから ツール(T) → マクロ(M) → セキュリティ(S) と選択してください。

 次のようなダイアログが立ち上がってきます。

 Excel のデフォルト設定では、このレベルが になっています。 この状態では『信頼のおけるソース元』の登録されたデジタル署名を持つマクロだけが実行できます。 完成されたマクロを実行するだけならば、マクロにデジタル署名を行い、『信頼のおけるソース元』に登録して、 の設定で使用するのが望ましいでしょう。 しかし、マクロを少しでも修正したらその都度デジタル署名をし直さなくてはなりません。 自らがソースを作りこんでいく場合、この設定では非常に不便です。

 逆に にした場合、全てのマクロが何の確認もなしに実行されてしまいます。 非推奨である旨が記述されていますが、やっぱり避けておいたほうが無難です。

 このダイアログでは を選択します。『コンピュータに損害を与える可能性があるマクロを実行する前に警告します。』 とあるとおり、マクロを含むブックが開かれる直前にマクロを有効にするか無効にするかを問い合わせる 次のようなダイアログが表示されます。

 素性の知れたマクロの場合のみ『有効にする』をクリックしてブックを開くようにしてください。 予期せずこのダイアログが表示された場合は決して有効にしてはいけません。 後から有効にしたい場合は、このダイアログを開けば有効化できます。

Excel 2007 の場合

 Excel 2007 ではセキュリティにレベルという概念がなくなり、 信用できるか否かという考え方になりました。その信用の与え方を順を追って説明します。

 まず、Excel 2007 を起動したら、ウィンドウ左上の Office マーク をクリックします。

 上のような画面になりますので、ポップアップウィンドウの下部にある Excel のオプション(I) ボタンをクリックします。オプション設定の画面が起動しますので、 左側のメニュー項目から セキュリティセンター をクリックしてください。

 上のような画面になったら、 画面右下の セキュリティセンターの設定 ボタンをクリックします。 セキュリティセンターの設定画面が起動してきます。 信頼できる発行元を登録し毎回デジタル署名を行なっても良いのですが、デバッグなどには向かないと思われます。 ここでは信頼できる場所を登録することでマクロを有効にしてみたいと思います。 左側のメニュー項目から 信頼できる場所 をクリックしてください。

 上のような画面になったら、 画面下部にある 新しい場所の追加 ボタンをクリックし、 いよいよ信頼できるファイルを保存するフォルダを指定します。

 上のようなダイアログが起動します。参照ボタンを利用するなどで、 信頼できるファイルのみを保存しておくフォルダを設定し、OKボタンで確定してください。 最後に開いている画面を全て OK で閉じれば完了です。

 これ以降はそこに保存されたファイルのマクロは無条件で実行されます。 信用できないファイルは決してそこに保存してはいけません。 信頼できるマクロを含むファイルのみを保存するようにし、 マクロを含まないファイルを保存する場所とは別に管理したほうが良いでしょう。


Excelマクロについて

 マクロExcel の操作を記録する程度の簡単なものであれば 新しいマクロの記録(R の機能を使って記憶させるように作成することができますが、 複雑な処理を行なう必要がある場合、Visual Basic Editor を使用して作成することになります。 Excel 2007 以前のバージョンでは 「ツール」 → 「マクロ」 → 「Visual Basic Editor」 で、 Excel 2007 ではまず、 「Office マーク」 → 「Excel のオプション」 → 「基本設定」 でメニューに 開発 の項目を表示させ、 「開発」 → 「Visual Basic」Editor 表示させることができます。

 Visual Basic (VB) は、本来、アプリケーションなどを開発するプログラミング言語で、 コンパイルして実行ファイル(.EXE)を作成することができます。しかし、 Excel の Visual Basic Editor は厳密には Visual Basic for Application (VBA) と呼ばれるもので、 実行形式のモジュールを作成するものではなく、Excel の内部から呼び出して実行する形態のものです。 文法など記述方法はVisual Basic (VB)と同じですが、VBとほぼ同等の機能を有していますのでその威力は絶大です。

 TRYCUTファミリーの各ユーザーそれぞれに既に運用されている加工指示書の書式があるはずですので、それぞれの 記述方法を具体的に解説することは不可能ですが、単純例として、ここでは一連の加工を一括してシミュレーションし、 それぞれの条件、結果を簡単な加工指示書として出力、保存した Excel マクロ サンプル TrExlBat.xls の紹介にとどめ、あとはこれを参考にカスタマイズして 頂くことを想定しています。記述方法の詳細については Microsoft MSDN をはじめ、 インターネット上にも大変に多くの VBExcel マクロ について解説したサイトが存在しますので、 それらを参照してください。


マクロを使った簡単な加工指示書作成例

 これから作成例(サンプル)を紹介しますが、以下のサンプルはTRYCUT2000/3000での利用を想定したものです。最初の 状態では、TRYCUTが"C:\TRYCUT2000\TRYCUT.EXE"にインストールされていることを前提にしていま すが、パスは自由に変更して下さい。なお、この例では突出し長さを参照する部分が ありますので、TRYCUT側の初期設定ファイル(Ctrl + F1)内の[Define]セクション"ARBOR CHECK"を"OUTPUT"に設定して おいていただく必要があります。まずは以下のサンプルファイルをダウンロード後、解凍して"C:\Sample"に保存して 下さい。

ダウンロード Sample.lzh

 本来、インターネット上に置かれたマクロを含むファイルをダウンロードすること自体、 奨められたことではありませんが、この中のマクロソースも公開しますので、 ご確認下さい。 そして最初は マクロを無効にした状態 で解凍ファイル群の中の"TrExlBat.xls"を開いて みてください。

 上のようなページが表示されます。連続実行をする上で必要になる設定のページです。 連続実行マクロではこのページ内容を読み込み、この内容に従って処理を進行させて行きます。

 上から、まず TRYCUT PATH ですが、 シミュレーションを行なうのに TRYCUT2000/3000 を起動しなくてはなりません。 ここで TRYCUT の実行ファイルを指定しています。 実際には TRYCUT2000/3000の起動形式 を利用して工具定義ファイルやワークファイル、 実行モードなどを指定して起動する必要があるのですが、 これらの詳細については TRYCUT2000/3000のヘルプTRYCUT起動形式 を参照してください。

 次に 作業フォルダ ですが、 シミュレーション時に必要なワークファイルやNCファイル、 また中間および最終結果の出力場所の基準となるフォルダとして定義しています。

 次の 工具定義ファイル ですが、 これは既に別の場所に定義されている場合も多いと思います。TRYCUT2000/3000を起動するのに必要なため、 ここでは完全パスで指定します。

 そして 作業指示書保存名。 結果の出力ファイル名です。作業フォルダからの相対パスで指定された名前のファイルを出力します。

 その次の TTL ARBOR 定義文チャッキング形式 対応表 ですが、 作業指示書の内容としては工具のチャッキング方法をできるだけ明確に伝えたいものです。 しかし、TRYCUT で保有している情報は 工具定義ファイル で指定している ARBOR 文 だけ。 これをそのまま出力しても作業者には伝わりません。分かり易い表現に替えるための対応表です。

 その下には 連続処理実行 のボタンがあります。 マクロを簡単に実行するために配置したもので、処理自体には関与していません。無くても構いません。

 そして最後に ワーク DMF ファイルNC ファイル結果保存 DMF 名 の表 ですが、 ここで連続シミュレーションしたいワーク、NCファイル、結果ワークファイル を定義しています。 1行目から順に実行されますが、前の処理の結果が出力されるまで待機しますので、 次の行で前の処理の結果DMFをワークとして定義することが出来ます。 このサンプルでも、前の処理の結果をワークとして指定していることが見て取れると思います。

 この設定シートをご確認いただけましたら、次にVisual Basic Editor を起動してみましょう。ソースとして公開してあるものと同じ内容であることが確認できると思います。

 ここで Option Explicit という記述は 「変数の宣言を強要する」 というおまじないのようなもので、マクロの実行には直接的な関係はありません。 ですが、スペルミスなどによる想定外の変数が出来てしまうことを予防してくれますので、 すべてのモジュールに設定しておくことをお奨めします。

 また、Private Sub btnRun_Click() という記述は btnRun という名前で定義されたコントロールが クリックされたというイベントによって実行されるプロシジャーです。ここでの場合、 設定のシート上に置かれたボタンが btnRun という名前で定義されていますので、 ボタンが押されたら 連続処理実行マクロ を呼び出すように書かれてます。

 マクロとしての実行内容は MainMod という名前で定義された標準モジュール内にすべて記述されています。しかし、 この内容をダラダラと解説することに意味があるとは思われません。 意図していることを ソース 内にコメントとして記述してありますので、 これを参考に Visual Basic 的な記述方法を学び、カスタマイズして実用化して戴きたいというのが本来の目的です。


 ここまでの内容をご確認いただけましたら、いよいよ実行してみましょう。

 まず、このマクロでは TRYCUT で出力された 突出し長 を読み込んで 作業指示書 に反映することを想定しています。TRYCUT突出し長 を出力するように、初期設定ファイル Trycut.ini[Define]セクションARBOR CHECKOUTPUTに設定してください。

 そして今度はマクロを有効にして TrExlBat.xls を開きます。

 TRYCUT PATH には各自の環境に合わせて TRYCUT2000又は3000へのパスを設定してください。

 それから 作業フォルダ工具定義ファイルC:\Sample の部分は、 ダウンロードした圧縮ファイルを解凍したフォルダ(TrExlBat.xls のあるフォルダ)に置き換えてください。

 ここまで出来たら 「連続処理実行ボタン」 を押してみてください。 作業フォルダ 内に次のような内容の 作業指示書.xls が出力されているハズです。

 ここで利用したデータはホームページ上の工具破損の検知と回避 のものと同じです。 工具定義ファイルをも取り込むことで、工具番号のみならず、 明示的な工具名や解かりやすく割当てられたチャッキング形式、TRYCUT2000/3000が出力する 突出し長ファイル を読み込んでその値を反映することが可能であることが分かると思います。また、 加工結果も取り入れることが可能であるということを明確にするために悪い例のパスを入れて工具を破損させています。

 もちろん、このままの加工指示書で十分実用的かどうかはわかりませが、データ(各種情報)を取り 出すためのサンプルにはなっているはずですので、これを参考にすることで実用的なレベルまで改変していただければと 考えています。現在活用されている加工指示書を雛型として読み込んで指定の場所に値を書き込む程度のカスタマイズ であれば、それほど難しいものではないかもしれません。ぜひトライしてみて下さい。シミュレーション業務が ほぼ自動化され仕事の効率が格段に向上するかもしれません。


 本ページの目的は、あくまでも紹介したサンプルからユーザー個々がカスタマイズし、少しでも効率よくTRYCUT ファミリーをご利用いただくために公開しているものです。
 本ページは理解できても、自社で対応できる状況にない。しかし自動化は 進めて行きたいというような場合には、ご相談に応じますのでsupport@trycut.comまでご連絡下さい。


トップページへ