AutoCAD VBAが64bitで動かない時の対処法をお探しですね。
広告
AutoCAD VBAが64bitで動かない!そんな時の解決方法
AutoCADを使っている設計者やエンジニアの皆さん、VBA(Visual Basic for Applications)を使って作業を自動化していませんか?繰り返しの作業を楽にしたり、便利な機能を追加したりと、VBAはとても重宝するツールですよね。
でも最近、こんな困った問題が起きています。
昔作った32bit用のVBAプログラムが、新しい64bit版のAutoCADで動かなくなってしまうんです。
「せっかく時間をかけて作ったのに…」と困っている方も多いのではないでしょうか。
今回は、この64bit移行の問題について、分かりやすく解説していきます!
なぜ32bitのVBAが64bitで動かないの?
まず、なぜこんなことが起きるのか説明しますね。
昔の32bit環境で作ったVBAファイル(.dvbファイル)は、64bit版AutoCADではそのまま使えません。
一番の原因は、**Windows API**という機能の呼び出し方が変わったことです。
32bit環境では問題なかった書き方が、64bit環境ではエラーになってしまいます。
これを解決するには、コードの中の`Declare`という部分に`PtrSafe`というキーワードを追加する必要があります。
また、AutoCADのバージョンが上がると、VBAの参照設定が「MISSING」と表示されることもよくあります。
これらを正しく設定し直すことも大切です。
「Common Dialog」問題が一番やっかい
64bit移行で最も多くの人が困るのが、**Common Dialog**という機能です。
これは何かというと、「ファイルを開く」「ファイルを保存する」「色を選ぶ」といった、よく使うダイアログボックスを簡単に表示できる便利な機能でした。
多くのVBAプログラムで使われていたんです。
ところが、64bit版のVBAではこのCommon Dialogがうまく動かないことがあります。
「今まで使えていたのに急に使えなくなった!」という声をよく聞きます。
解決方法は?
Common Dialogが使えない場合は、**Windows APIを直接呼び出す**方法に変更する必要があります。
具体的には、`comdlg32.dll`という部分にある`GetOpenFileName`や`GetSaveFileName`という機能を、`Declare PtrSafe`を使って呼び出します。
ちょっと難しく聞こえますが、同じような「ファイルを開く」機能を実現できます。
既存のCommon Dialog部分をコメントアウトして、新しいモジュールでAPI呼び出しを作り直す作業が必要になります。
VBAエンジンの進化による影響
AutoCADのVBAエンジンも進化を続けています。
特に大きな変化があったのが、AutoCAD 2014で導入された**VB7.1**への移行です。
AutoCAD 2013の64bit版では、参照設定を変更するだけで多くのVBAプログラムが動いていました。
でもVB7.1では、一部のコントロール(プログレスバーなど)が使えなくなったり、動作が変わったりしています。
これまで普通に動いていたVBAコードが、突然エラーを出すようになることもあります。
そんな時は、使えなくなった機能の代わりを自分で作ったり、コード全体を見直して新しい方式に合わせる必要があります。
新しい機能が追加される一方で、古いプログラムとの互換性を保つための調整作業も必要になるということですね。
これからVBAはどうなる?上手に使い続けるコツ
Autodeskは最近、VBAよりも**Visual Studio**を使った.NETやObjectARXでのカスタマイズを推奨しています。
「VBAはもう古いのかな?」と心配になる人もいるかもしれません。
でも安心してください。
VBAは今でも、**簡単で素早くプログラムを作る**のにとても便利なツールです。
特に、ちょっとした作業の自動化や試作品を作る時には、その手軽さと強力さは他にはない魅力があります。
64bit環境でVBAを使い続けるためのポイント
1. **基本知識を身につける**
– `PtrSafe`キーワードの使い方
– Windows APIの直接利用方法
2. **情報収集を怠らない**
– AutoCADのバージョンアップ情報をチェック
– VBAエンジンや参照設定の変更点を把握
3. **コミュニティを活用する**
– 公式フォーラムや掲示板での情報交換
– 他の人の解決方法を参考にする
4. **柔軟な対応を心がける**
– 新しい手法にも挑戦してみる
– 変化を恐れずに学習を続ける
まとめ
64bit移行の問題は確かに面倒ですが、正しい知識と対処法を知っていれば乗り越えられます。
VBAの可能性はまだまだ無限大です。
困った時は一人で悩まず、コミュニティで相談したり、この記事のような情報を参考にしたりして、ぜひAutoCADをもっと便利に使いこなしてくださいね!
広告
