So-net無料ブログ作成
EXCEL Macro(J) ブログトップ
前の20件 | -

EXCELマクロのパスワード [EXCEL Macro(J)]

EXCELのマクロをフリーソフトやシェアウェアとして利用してもらう場合に
プログラムをチェックされるのは辛い場合があります。
プログラミング中にツール内のVBAProject-プロパティの保護でパスワード設定が可能です。
通常のシート自体にもパスワードを設定して保護することも可能です。

マクロのプログラム内にInputboxを設けて、そこにパスワードを入力させて
その文字列とプログラム内に設定した文字列(パスワード)を比較させます。
もし、それが一致していなければ「パスワードが異なります」などのメッセージを
表示させた後で、強制的に
Exit sub
で終了させればいいでしょう。
但し、前出のようにプログラム保護用のパスワードを設定しておかないとこの部分を
改ざんされるので設定しておいてください。

ただ、毎回パスワードを要求されることにはなります。
マクロでその部分のプログラム自体を修正することを操作する方法もありそうです。
それであれは、それ以降はパスワードを要求されないでしょう。


nice!(0)  コメント(0) 

ネットリスト比較のマクロの修正 [EXCEL Macro(J)]

ネットリスト同士を比較しているマクロの完成度は高いと思っていましたが
すべての情報が記載されているのでエラーが多い場合はそれをチェックするには見辛いようです。
NGかOK化の判断が難しいので色分けしているのが裏目のようです。

そこでどの列も問題ないものは行(REF番号)ごと削除してエラーのある行だけのエラーリストに
することが可能にしました。

一度は通常通りにその内容をなめて確認をしますが、厳密なチェックの場合はエラーリストにして
その部分を眺めるようにします。

コンピュータでチェックするとエラーをチェックする手間が省けます。
しかし、それだけを抽出したこのエラーリストはその分、時間を掛けてチェックした方がいいでしょう。


nice!(1)  コメント(0) 

ダミーSCHでバリアントを作成 Part.2 [EXCEL Macro(J)]

バリアント用にダミーSCHをAltiumSCHで作成する話の続きです。
AltiumPCBでBOMとしてデジグネータだけをEXCELファイルとして出力しそれをEXCELマクロで
加工して*.WASで保存すればいいでしょう。

WASファイルは下記のように変えたいものと変えるものを半角スペースで区切れば
AB1をR1に、AB2をR2に変換してくれます。

AB1 R1
AB2 R2

コメント欄の変更はSCHとPCBのリンクで処理すればいいでしょう。
但し、ピン数が異なるのでネットリストなどのリンクはNGです。

EXCELマクロとしては、EXCELファイルを読み込んでその文字列をFor-Next文の回数iを
そのままREF番号の数字として利用できるので10-15分ぐらいで作成できました。

AltiumSCHではA2サイズに、四角で囲まれたフィルタの部品をAB1からAB1200として仮配置
してあります。
(シンボルは何でもいいのですが一番分かりやすいものを利用しました。)

マクロで作成したWAS-ISファイルを読み込めば番号が差し変わります。
後はバリアントとしての処理が可能ですが、接続状態が異なるので問題が出るかも
しれません。


nice!(0)  コメント(0) 

PDF回路図のREF番号の最適化 Part.3 [EXCEL Macro(J)]

PDFの回路図からピックアンドプレースファイルを作成するマクロが暫定的ではありますが
出来上がりました。

「Altium Designer」は約2m x 2mの設計エリア(拡張も可能)があるので
400mm x 400mmを1ページ分として4 + 5 + 5 + 5 + 5で24ページ分に対応させています。
最初が4ページ分なのは、左下原点近くのエリアが基板を配置するメイン作業エリアだからです。

部品表と、PDFからコピペした資料を整理してピックアンドプレースファイルを生成しています。
これを基板外に並んだ配置前の部品の状態にPIKファイルのロードをして自動配置させます。

SCH_PCB_MAC_Work.png

ページ別にまとまっていて、REF番号順に10mm間隔で整列し、32個ごとに折り返しています。
最大で32 x 32 = 1024 となるので、1ページあたり1000個ぐらいまでの回路図に対応している
ことになります。
これを更に手動で移動すればラフレイアウト作業が簡単になります。
A3の回路図1ページ分で、1時間ぐらいは早く処理できるようです。
一見、大した差がないように思えますが部品を探すというストレスが少ないので非常に楽な
作業となります。
通常は回路図だけ見ていれば、部品は探さなくても順序よく整列しているのでそれを掴んで
移動するという作業になります。

回路図内のデータバスはD1、D2などD0..7という風なバスエントリーを書きますが、その文字も
検出してしまうので、ダイオードD1、D2などと誤認してしまいます。
REF番号はEXCELのメソッドでは完全には並ばず、C1、C10、C100、C2などとなってしまいます。
文字列を一旦、アルファベットと数字を分離し、ソートして合成しています。
しかし、R1MとかV3R3Vなどのように数字の後にまたアルファベットがある場合もあるので
悩ましいです。

完成度を上げ一般販売に向けて準備中です。


nice!(1)  コメント(0) 

EXCLEマクロを利用した基板設計作業工程 [EXCEL Macro(J)]

弊社の基板設計の作業工程は少しだけ変わっているようです。
SCHCADの生データだけで稀に部品表が付いてくるからなのです。

それをEXCELマクロを併用した作業工程を含めて記載します。

1.ネットリストをEXCELマクロで読み込んで簡易部品表または部品表にします。
 あまりに変わったネットリストの場合はネットリストエディタと命名したEXCELマクロで
 事前処理または2.の工程の後に再度処理します。

2.顧客別にコメント欄やフットプリント欄を参考にした置換テーブルでフットプリントの
 差し替えを自動または半自動で処理します。

3.部品表がある場合はそれもEXCELマクロでネットリスト化します。

4.両者をEXCELマクロ比較して基板にロードする前に差をチェックします。

5.基板設計後にネットリストを生成し、元のネットリストなどとEXCELマクロで
 文字列を厳密にチェックします。
 異なる部分は色分けされるので見過ごすことはありません。

これまで、3つぐらいのEXCELマクロを使用していました。
「部品表修正マクロ・プロフェッショナル」であればそれをほぼこの一つで処理できます。

こちらも「Altium Designer」を基準にしたマクロですがネットリストのフォーマットを
Altium、Protel、Tango形式に変換すれば利用可能です。
(ネットリストのフォーマットを再度、自社のCADに変換する必要があるでしょうからネットリスト
変換ソフトウェアが必要になるでしょう。)

nice!(1)  コメント(0) 

EXCELマクロによる作業時間の比較 [EXCEL Macro(J)]

A3サイズの回路図(部品はコンパクトなもの)3ページ分のパターン設計での作業時間の比較です。

1.顧客部品表修正
 部品表にもエラーや連続したものがチルダで処理されている場合の修正です。

2.ネットリストの型番差し替え
 フットプリントを自社の型番に修正する作業です。

3.新規部品作成リスト
 部品表やネットリストから新規作成しなければいけないフットプリントをリスト化する作業です。
 これがすぐにわかることで見積りが正確になります。

4.部品配置(ラフレイアウト前)
 ページ別にバラバラになっている部品をある程度まで作業エリアまたは基板内に集積する作業です。
 それを更に検討してラフレイアウトにしますが、その直前までの時間をさしています。

5.ネットリストの型番チェック
 回路図からのネットリストと基板から生成したネットリストの比較です。

6.回路図変更への対応
 設計後に回路図変更が入るとまた部分的にチェックして、どう対処するかの判断で、実際の
 修正時間ではありません。

juurai_excemacro.png

従来では7時間15分で、EXCELマクロを利用すると2時間14分となっています。
約5時間(300分)ほど短縮できるので、余った時間をパターン設計に掛けられます。

「Altium Designer」を基準にしたマクロですが一部分はネットリストのフォーマットを
Altium、Protel、Tango形式に変換すれば利用可能です。


nice!(1)  コメント(0) 

PDF回路図のREF番号の最適化 Part.2 [EXCEL Macro(J)]

色々処理してPIKファイルを作成したのですが、何個か違った位置に移動するものがありました。
どの部分のエラーなのかをチェックしました。

フットプリント作成によるエラーだと思っていましたが、実際はフットプリント名の中に
半角スペースがあることによる誤動作でした。

ピックアンドプレースファイルPIKはタブ区切りで出力しているのですがその一部に半角スペースが
あることで、その項目が右にずれてそれぞれの項目が誤認識されるためでした。
最初のX座標が無視され、次のY座標をX座標だと認識して移動していたのです。
そこで文字列内の半角スペースをアンダーバーに置換しました。
また、文字列にて半角スペースから後の文字を削除し短い名称にしてもOKでした。

このことによりピックアンドプレースファイルは半角スペースさえなければ、フットプリントの
具体名はどうでもいいようです。
しかし、コメント欄の方は認識していて、そのファイル内のものに入れ替わります。


nice!(1)  コメント(0) 

リファレンスからBOM生成 [EXCEL Macro(J)]

REF番号基準で(クロス)リファレンス表示された部品リストというタイプで支給されることも
あるでしょう。(弊社では全く貰ったことがありません。)

これから通常の部品表のフォーマットにする必要性があるかどうかは不明ですが
下記の手法で可能となります。

EXCELにて(クロス)リファレンス表示されたものに数量をすべて1(個)として入力します。

REF_BOM.png

列を編集して通常の部品表のように並べ替えます。
弊社の「部品表修正マクロ・プロフェッショナル」版にそれを貼り付けてネットリストを生成します。
そのネットリストを再度読み込めば通常の部品表になります。


nice!(0)  コメント(0) 

PDF回路図のREF番号の最適化 [EXCEL Macro(J)]

Altium SCHのREF番号の座標を利用してPCB上のREF番号をそれと相関関係の位置に配置するために
ピックアンドプレースファイルにすることは以前のEXCELマクロで実現できています。

しかし、知り合いからの依頼はPDFで支給された回路図でも同様の処理をして欲しいとのことでした。
CTRL+Aでそのページを選択してテキストエディタに貼り付けることは可能です。
しかし、一列に並んでしまうので座標情報を取り出すことは無理です。
話を聞いてみると、複数のページの場合だけ必要なので各ページである程度の固まりであれば
それでも使えるということでした。

そこで考えたのですが、EXCELの1列目に回路図の1ページの文字列を貼り付け、2列目には同様に
2ページ目の文字列を貼り付けます。
例えば5ページの回路図であれば5列目までを埋めることになります。
各列にはREF番号以外に値やボーダーの文字やタイトル文字なども入った文字列となります。
別途部品表を用意してそのREF番号に該当しないものはすべて削除するのでその処理は問題はなく
できるでしょう。

案は、ここまででこれからそのEXCELマクロを実際に作成する予定です。


nice!(0)  コメント(0) 

資材調達業務向けソフトウェアは Part.2 [EXCEL Macro(J)]

型番は置換で対応可能ですが、単価やメーカーなどにも対応する必要があります。

ネットリストやSCH系CADから生成した生の部品表から作成するマクロは
「部品表修正マクロ・プロフェッショナル」で実現できました。
しかし、それから更にデータベースなどを利用して置換し再集計するべきでしょう。
特に価格とメーカーと互換性のあるサードパーティの部品の型番やその入手先の
代理店なども必要でしょう。

弊社では部品表太では単純に置換していただけで、資材として利用していなかったので
その情報を持っていません。
今となっては動作しないので引っ張り出すこともむりです。

それはEXCELがいいのかACCESSがいいのかは現時点では判定できていません。


nice!(1)  コメント(0) 

部品表修正マクロ・プロ [EXCEL Macro(J)]

ネットリストを読み込んで部品表にするマクロです。
置換機能があるので型番も置換テーブルで差し替え可能です。
ネットリストから部品表を生成する機能なのですが、これまでの部品表修正機能も有しているので
「部品表修正マクロ・プロフェッショナル」と呼ぶことにしました。

これだけで回路設計会社の資材部門、基板設計者のフットプリント差し替え作業に対応できます。
前者の作業では部品表太の代わりになります。
但し、部品価格などの関連付けには対応できていません。
その場合は、別のデータベースとの関連で処理してもらうことになります。

基板設計作業としてはこのマクロで顧客からの部品表とネットリストの比較も可能なので
早めに顧客の部品表のミスが洗い出せます。
また、ネットリストを置換しないまま、他のネットリストを読み込んで比較すると両者を比較
できることになります。
これまでの単体のマクロの中では万能に近いツールとなります。

販売価格などは後日、アナウンスする予定です。


nice!(0)  コメント(0) 

置換テーブルの具体例 [EXCEL Macro(J)]

EXCELマクロにて型番の文字列を別の文字列に置換する為に置換テーブルを設けています。
その具体例を示します。

CRなどは値で区別必要があります、ICなどはダイレクトに置換すればいいでしょう。
文字数の少ないものは単純に置換すると、似た文字列が置換されるという誤動作をします。
そこで、3項目(列)の内容が一致した時だけ処理する必要があります。
その為、REF番号のアルファベット部分を抽出しなければならずプログラムとしては複雑になります。

置換したものと置換しないオリジナルを区別するには文字を黒から他の色に変化させることも
必要になります。

BCM_PRO_RP_Ex.png

nice!(0)  コメント(0) 

ネットリストからBOMを生成するには [EXCEL Macro(J)]

もし回路図からのネットリストを読み込んでその情報から部品表を作成するにはどうすればいいか
EXCELで処理する場合の手順を検討してみました。

1.まずはREF番号、型番、値の3列に分類します。
 ネットリストがテレシス形式の場合はそのまま広げるように並べればいいので簡単です。

2.次に、値の列でソートします。
 回路図からの場合はCRなどは厳密な型番ではない場合が殆どでしょう。

3.更に型番の列でソートします。
 一見、値の列と逆のように見えますが型番が基準なので最後に型番でソートします。

4.内容が同じものを数をカウントします。

5.これらの情報を別のシートなどに記載します。
 しかし、これが一番難しそうです。

ORCADの場合は、型番と値が同じ場合が多いので困りはしていませんでした。
しかし、両社が異なる場合は手順が面倒で未経験です。


nice!(1)  コメント(0) 

資材調達業務向けソフトウェアは [EXCEL Macro(J)]

これまで基板設計業者や回路設計者向けについて考えてEXCELマクロを考えてきました。
回路設計会社内の部品調達部署ではネットリストは貰える状態でしょう。
それから部品表を制作するのに設計者ではなくて資材の部署の場合はその作業は辛いでしょう。

知り合いの会社で以前は、部品表太で登録したデータベースを利用して型番を差し替えていました。
しかしWinXP以降は、内部のデータベースが対応しないのか使えないソフトウェアと
なってしまいました。

そこでEXCELマクロで置換テーブルを設けてそれで型番を置換すれば代用になるのではないかと
考えるようになりました。

つまり「資材調達向けマクロ」という構想です。


nice!(0)  コメント(0) 

ネットリストから部品表というのは [EXCEL Macro(J)]

以前から作成した方がいいのか悩ましいのがネットリストからEXCELマクロにて部品表を作成すると
いうこと。
一見、部品表は回路設計CADや基板設計CADから生成できるので無駄のようです。

しかし、部品表を生成する工程またはその後に置換テーブルを利用すれば部品表太と似たような
処理が可能になります。

顧客別にデータベースを作成または選択するのは面倒なのでマクロ自体を顧客の略称を追加して
別名保存すればいいでしょう。

弊社で一番利用しているマクロもネットリストから中間的に擬似部品表のようなものを作成して
置換しているのでベストな手法のように思います。
この擬似部品表の部分を通常の部品表の様式にするのが面倒なので手付かずでした。

NET_DMY_BOM.png

nice!(0)  コメント(0) 

部品表内の取り消し線の処理 Part.2 [EXCEL Macro(J)]

取り消し線に関するプログラミングは完了して、スタンダード版に反映しました。

しかし、販売促進版に取り消し線のある部品表を貼り付けた場合は
最後にフォントサイズなどを変更するプログラムによって取り消し線の部分が
通常の表示に代わってしまいます。
支給された部品表の文字サイズが小さい場合に対応していたのですがそれが仇となりました。

そこで販売促進版でも取り消し線に対応することにしました。
(Rev.1.03)

取り消し線の部分は消去することになりますが、部品点数が1個などの場合はその欄が
空白になったりします。
後の工程でエラーになる場合もあるので、その点に注意する必要があります。


nice!(0)  コメント(0) 

部品表内の取り消し線の処理 [EXCEL Macro(J)]

部品表修正するEXCELマクロにて取り消し線にも対応すべくプログラミング中です。
そこで気になったのがREF番号ではなくて、型番や数量の部分にも取り消し線がある場合です。

マクロにて取り消し線の部分を消去することは可能なのですが矛盾がある場合は
問題となる場合もあるでしょう。
そういう場合は、手動で編集する場面も出てきそうです。

macro_TH_Str_Th_DEL.png

nice!(0)  コメント(0) 

部品表内のアルファベット省略 Part.2 [EXCEL Macro(J)]

部品表内のREF番号の記述にて冒頭のアルファベット以外は削除したものに対応した
マクロが完成しました。

これまで、またこれからアップロードする部品表修正の工程があるマクロに関係があるので
急いで処理しました。

ダウンロード可能な販売促進版のマクロに関しても対応済みです。
https://sophil3.blog.so-net.ne.jp/2019-01-21-2

今回の修正でバージョンは1.01となっています。

BCM_REF_None.png

nice!(1)  コメント(0) 

部品表内のアルファベット省略 [EXCEL Macro(J)]

部品表のREF番号に関して、C1,C2,C3ではなくてC1,2,3という風に省略する場合が
あるようです。
更に点数が多くて複数行に渡る場合はその先頭もアルファベットがなく次の行が
4,5,6という風に始まる場合もあるようです。

大規模な部品表ではできるだけ文字数を減らす為の処置なのでしょうが厄介です。

現行の部品表を修正するマクロではこの部分には対応していないので、事前に処理する
工程をマクロ内に設ける必要が出てきました。

これに関連するマクロが5種類もあるので早めに対応する必要が出てきました。


nice!(1)  コメント(0) 

販売促進版マクロにスタンダード版を新設 [EXCEL Macro(J)]

部品表修正マクロと部品位置情報修正マクロ共に有料のスタンダード版を設けることになりました。

1.部品表修正マクロBCM・スタンダード版
 Windowsで使用できない文字列をアンダーバーに変換する機能
 クロスリファレンスにて左右の型番などの違いを色分けする機能を有します。

 販売価格は税別で6,000円を予定しています。

2.部品位置情報修正マクロPCM・スタンダード版
 Windowsで使用できない文字列をアンダーバーに変換する機能
 ピックアンドプレースの表からTOP/BOT別々に部品表を生成します。
 (TOP/BOT両方は既に部品表で示しているので生成しません。)

 単体の部品表やピックアンドプレースファイルからTOPとBOTを別々にするのは
 部品実装業者側の負担が大きいので、その機能を装備しました。

 販売価格は税別で5,000円を予定しています。

 どちらもダウンロード版で、振込確認後にメールで解凍用パスワードをお知らせする
 タイプになります。

 ソフトウェアは作成中ですので、リリースは今月末ぐらいを予定しています。
 カタログの内容は販売促進版に追加機能を示す形なので殆ど同じ構成です。
 ダウンロードURLやパスワードを問い合わせするメールアドレスの部分が追加や変更に
 なりそうです。

 これまで部品実装業者向けのソフトウェアは選択肢が限られていたので後者のマクロに
 ご期待ください。


nice!(0)  コメント(0) 
前の20件 | - EXCEL Macro(J) ブログトップ