出産前後の痔にはご注意!

日本で機械設計をしている外国人です。amazonで関連の本を検索して見ましたが、本数も少なくて、タイトルだけを見てはその内容が本当に探して本かどうか、勉強になるか分からなかったので選択に迷っています。もしお勧めの本があったら是非教えてください。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

本ではありませんがAutoLispの講座です。



参考URL:http://ouji.vis.ne.jp/home/
    • good
    • 0

AutoLispでしたらこういったものが出ています。


AutoLispの初歩
http://www.amazon.co.jp/gp/product/4486015428

AutoCAD用VBAの本は私も探していますが全然ありません。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVBとVBAの違い

お世話になります。

現在、ExcelVBAで機械設計の計算をさせようと思い勉強しているのですが、VBとVBAの違い(VBと比較したとき、VBAできること、できない事)の境目?がいまいち判りません。
まだまだ勉強中で困惑しております。このままExcelVBAを勉強していく物か、VBについて勉強していくか迷っています。このままExcelVBAを勉強してExcelVBAを理解すれば判断できるかと思うのですが、畑違いの勉強になってしまわないかと心配です。

やりたいことは、各種計算の簡略化です。
現在は、関数電卓で行っていますが、これをパラメータを入力すると計算結果が出る。このような物を作りたいと思っています。

長くなってしまったのでまとめると、
1、VBAとVBの違い
2、ExcelVBAで設計計算が可能か
あと、
プログラムにより計算させるときに、最適なプログラム(JavaとかPHPとかHTML等など・・・)お勧めのプログラムがありましたらアドバイス頂けたらと思います。

Aベストアンサー

1. VBAとVBの違い

VBは単体で動作するアプリケーションが作れますが、VBAはOfficeが必要です。
また、VBAはOfficeの環境が使えるので、Excel等を使った入出力の機能が既にできていますが、VBではある程度自分で作る必要があります。また、費用的な面でVBは購入しないと使えませんが、VBAはOfficeがあれば使えますので、既にExcelなどを導入されているならば、追加の費用が必要ありません。
もし、複数の人間で作ったプログラムを利用され、かつその中にOfficeを持っていない人が含まれるのであればVBAではできませんので、VBが必要です。

2. ExcelVBAで設計計算が可能か

可能です。また、多分VBAを使わなくてもExcelの関数でもある程度のことが可能だと思われます。お持ちの関数電卓の桁数にもよりますが、相当な高精度が必要でない限り大丈夫です。

文面からすると、プログラミング未経験のようですが、やりたいことが明確なので、Excelをお持ちであればVBAで始めてみてはいかがでしょうか。他の言語(Java, C, PHP...)でも可能でしょうが、中には環境を用意しなくてはならなかったり、本質である計算以外に気にしなくてはならないことが多く、初心者にはとっつきづらいのではないかと考えます。

VBAからVBへの移行、VBからVBAへの移行はどちらも可能ですし、VBAからVBへの移行は多少時間がかかるかもしれませんが、VBよりVBAから始める方が楽なので、どちらに優越があるとは一概に言えないと思います。一人でちょっと使う程度や勉強用なら、ExcelVBAをお勧めします。
しばらくすると、ExcelVBAの限界を感じるようになると思うので、そこからVBに移行するというのでも悪くないと思います。

1. VBAとVBの違い

VBは単体で動作するアプリケーションが作れますが、VBAはOfficeが必要です。
また、VBAはOfficeの環境が使えるので、Excel等を使った入出力の機能が既にできていますが、VBではある程度自分で作る必要があります。また、費用的な面でVBは購入しないと使えませんが、VBAはOfficeがあれば使えますので、既にExcelなどを導入されているならば、追加の費用が必要ありません。
もし、複数の人間で作ったプログラムを利用され、かつその中にOfficeを持っていない人が含まれるのであればVBAではで...続きを読む

QExcelからAutoCADへの連携ができない

ExcelのVBAでAutoCADの操作をしようと勉強中なのですが
参考資料を真似て
--------------------------------------------------------
Function acad_int()
  On Error Resume Next
  Set AcadApp = GetObject(, "AutoCAD.Application")
(上の行でERR'429'Activexコンポーネントはオブジェクトを作成できません。のエラー)
    If Err Then
     Set AcadApp = CreateObject("AutoCAD.Application")
      AcadApp.Visible = True
    End If
  AcadApp.Visible = True
End Function
-----------------------------------------------------------
コピーしてExcelで実行すると、GetObjectで上記( )内のエラ-メッセージがでます。
参照でAutoCAD 2004 タイプライブラリ にはチェック入れています。
また、AutoCADを起動していても、していなくても同じみたいです。
使用しているのは ・AutoCAD LT2004
・オフィス2003Excel
ですが、何せ初心者で始めたばかりでここから進む事ができません。
どうかお力をお貸しください。

ExcelのVBAでAutoCADの操作をしようと勉強中なのですが
参考資料を真似て
--------------------------------------------------------
Function acad_int()
  On Error Resume Next
  Set AcadApp = GetObject(, "AutoCAD.Application")
(上の行でERR'429'Activexコンポーネントはオブジェクトを作成できません。のエラー)
    If Err Then
     Set AcadApp = CreateObject("AutoCAD.Application")
      AcadApp.Visible = True
    End If
  AcadApp.Visible = True
...続きを読む

Aベストアンサー

少し勘違いされてるかな?
VB6.0とは、ExcelVBAとは違いますよ。
「Visual Basic6.0」の略なんですが、これはExcelとは別物のソフト
の事です。簡単に言えば、ソフト開発者向けの専用ソフトの事ですよ。
だから、完全にExcelVBAとは別の物です。ただ言語が「Visual Basic」で共通というだけです。
 だから、VB6.0からExcelを参照する時に、アプリケーションから捕ら
える必要があります。その時の記述が参考になるかもしれないと思い
回答しました。

procatopusさんの言うように、標準に搭載しているExcelの機能では、
捕らえきれないかもしれないですね。
私もLTとVBAの組み合わせで様々な処理を考えてきましたが、分かり
ませんね。以前、自分の周りの誰かが、その処理を有効にするクラス
モジュールをどっかで購入したとか聞いた様な気が。。。。。
(この辺は他の回答者を期待して下さい。)

ところで、質問のソースで、
AcadApp.Visible = True
となってますが、この処理は、オブジェクトを非表示から表示にする
処理。つまり、現在のAutoCADが表示となっている?
こんな処理が本当にしたいのですか?あくまでサンプル?

ただ単に、AutoCADを選択したい場合、ExcelとAutoCADが開かれてい
る状態でのコーディングは

Sub test()
AppActivate "AutoCAD"
End Sub

で大丈夫ですよ。しかし、選択から先の処理が本命でしょうから。。

結局、この質問の先に、どういった処理をお考えなんでしょうか?

VBAを使用するなら、スクリプトファイルにコマンドをシーケンシャル
出力して、スクリプトを実行する事による、自動作図を作成するみた
いな処理を考えるのはどうでしょうか?

あくまでアドバイスとしてです。

少し勘違いされてるかな?
VB6.0とは、ExcelVBAとは違いますよ。
「Visual Basic6.0」の略なんですが、これはExcelとは別物のソフト
の事です。簡単に言えば、ソフト開発者向けの専用ソフトの事ですよ。
だから、完全にExcelVBAとは別の物です。ただ言語が「Visual Basic」で共通というだけです。
 だから、VB6.0からExcelを参照する時に、アプリケーションから捕ら
える必要があります。その時の記述が参考になるかもしれないと思い
回答しました。

procatopusさんの言うように、標準に搭載しているEx...続きを読む

QAutoCADからエクセルへの貼り付け

AutoCADのオブジェクトとテキストをエクセルに貼り付けたいです。ファイルの貼り付けではなく、オブジェクトならオートシェイプ、テキストはテキストで欲しいです。
出来れば変換ソフトを使わずに。
過去ログ見ましたが、wmfなどのファイルばかりで、オートシェイプで編集できるのが見つかりませんでした。
AutoCAD2002LT,excel2002です。お願い致します。

Aベストアンサー

#2です。

フォントの問題では?"bigfont.shx"だとストロークフォントなので線になってしまうので、TTフォント(MSPゴシックとか)を利用すれば問題ないと思います。

QEXCEL VBAで計算値を四捨五入、切り上げ、切捨てする方法

ネットで探してみたのですが、計算結果を四捨五入して特定のセルを
返すにはどうしたらいいのでしょうか?

Sub hokangosa()

Dim ZPS As Double
Dim ZPOS As Double
Dim DMN As Double
MsgBox (" >>> 補間誤差自動計算 <<< ")
MsgBox (" >>> 初期値入力します <<< ")
ZPS = InputBox(">>> ステップを入力してください<<<")
ZPOS = Sheet1.Cells(22, 4).Value
DMN = ZPOS / ZPS
Sheet1.Cells(23, 6).Value = DMN
End Sub

ここでDMNの値を四捨五入したいです。

またこれとは別に切上げ、切捨ても教えていただけるとありがたいです。

Aベストアンサー

DMN = Application.WorksheetFunction.Round(ZPOS / ZPS, 0)
で、四捨五入
DMN = Application.RoundDown(ZPOS / ZPS, 0)
で切り捨て
DMN = Application.RoundUp(ZPOS / ZPS, 0)
で切り上げです。

引数で、対象桁を変更できます。

QAutoCAD 文字をExcelに貼り付けるには?

こんにちは。いつもお世話になっています。
先日会社で、「AutoCADの図面上の文字をExcelに貼り付けたいんだけど、いい方法はないかねぇ」と尋ねられました。
AutoCADの表作成コマンドで作られた文字なら可能ですが、
普通の文字をExcelなどに貼り付けるとイメージデータのようになってしまいます。
ただの文字として貼り付ける方法はないものでしょうか?
JWCADならできるので、DXFに変換してJWからExcelに貼り付けてもいいのですが、もし方法があるのなら知りたいと思い質問させていただきます。どうぞよろしくお願いいたします。

Aベストアンサー

AutoCAD TextGrid
http://izawa.web.infoseek.co.jp/

dxfからtxtゲット アドイン
http://www.vector.co.jp/soft/win95/business/se242760.html?site=n
これらを使った事があります。
が、機能・使い勝手に一長一短あります。
(個人開発のソフトは、汎用性は持たせてあるとは言え、
  開発者本人が一番使いやすい様に作ってあるので。)

現在は、AcadRemocon+ExcelVBAで自作のプログラムを使っています。
http://www.kjufactory.com/
Basicの知識が有るのでしたら、これが一番です。
(自分にとって、使い勝手の良い物が作れますから。)

QVBEとVBA

VBEとVBAって何がちがうのでしょうか?

Aベストアンサー

VBEのEはEditor(エディター)のE
VBAのAはFor Apllication(フォー アプリケーション)、のA。

まぁ大体指し示しているものは同じものなんですが、
VBEはあくまでもVBAというシステムの中での、プログラムを構築する際に使用する1ソフトです。
但し他に使用できるソフトはないので、実質的にはVBAの中に含まれている機能ということなんですが。


たとえて言うならば・・・
えーーーっと。
VBAはテレビ、VBEはチャンネルと。
テレビとチャンネルを無理に切り離して考える必要はないかと思います。テレビというものを想像したときチャンネルはセットになってるものだし、チャンネルを想定したときそこにテレビもあるはずだしと。
まぁ区別はつけておくべきですが。

QSub ***( ) と Private Sub ***( ) の違い

初歩的な質問で申し訳ありませんが・・・

自分でコードを書いていても、イベントが発生したりした時の処理で、コードのウィンドウで上のドロップダウンリストで選択できる時の処理などは自動的に[Private Sub Command1_Click( )]などと出てくるのでそのまま使っています。自分で別途プロシージャーを作成する時は[Sub ****( )]としています。
ですがその違いを理解しないまま、自分で作成する時は[Private Sub]ではなくて[Sub]を使っています。

Sub ***( ) と Private Sub ***( ) の違いは何なんでしょうか?
どなたか説明頂けませんか?
よろしくお願いします。

Aベストアンサー

「Sub」の部分にカーソルを置いて[F1]を押せばヘルプが起動します。
「指定項目」のところに「Public」と「Private」の説明がありますよ。
省略して「Sub hogehoge()」とした場合は「Public」とみなされます。

Publicは「すべてのモジュールから呼び出せるプロシージャ」ということになります。
Privateとすると「同じモジュールの中からしか呼び出せないプロシージャ」となります。

もしExcelをお持ちでしたらExcelのVBEで標準モジュールを追加し、「Sub Test1()」と「Private Sub Test2()」を作成してみてください。
そしてExcelの[ツール]-[マクロ]-[マクロ(Alt+F8)]でマクロ実行のダイアログを表示させてみるとわかります。
ここには実行できるプロシージャの一覧が表示されますが、Test1は表示されているけれどTest2は表示されません。
Test1はPublicで、Test2はPrivateだからです。

QAUTO CADの一番安い購入方法

建築設計を勉強する上でCADを購入したいのですが、AUTO CADはどこで購入するのが一番お得なのでしょうか?幾らくらいの物を購入するのがお薦めでしょうか?

Aベストアンサー

1.書店などに行けば5000円前後でAutoCADの学習本があります。
それには通常30日間使用可能な体験版が付属しています。
まず、それで勉強しましょう。

2.AutoCADにはレギュラー版とLT版がありますが、通常使用していく上ではLT版で十分です。個人で購入するのに、初心者にはレギュラー版はオーバースペックです。
下記URLでご購入を検討されてみてはいかがでしょう。
http://www.kakaku.com/sku/price/375002.htm

なお、現在、AutoCAD LT2004/2005/2006と3種類販売されていますが、バージョンが古くても値段が大して変わらないので、最新版のAutoCAD LT2006の購入をお勧めします。
AutoCADはバージョンアップ対応が、3世代前までなのでそれよりも古いバージョンだとアップグレードできず、新たに買いなおさなければならないのでもったいないです。

しかし、個人で勉強するために12万円強はかなりの高額ですね。

あとは、いろんな商社に見積もりを出させて安くたたいて購入する手もあります。

参考URL:http://www.kakaku.com/sku/price/375002.htm

1.書店などに行けば5000円前後でAutoCADの学習本があります。
それには通常30日間使用可能な体験版が付属しています。
まず、それで勉強しましょう。

2.AutoCADにはレギュラー版とLT版がありますが、通常使用していく上ではLT版で十分です。個人で購入するのに、初心者にはレギュラー版はオーバースペックです。
下記URLでご購入を検討されてみてはいかがでしょう。
http://www.kakaku.com/sku/price/375002.htm

なお、現在、AutoCAD LT2004/2005/2006と3種類販売されていますが、バージョンが古くても...続きを読む

QAUTOCAD ある角度の線に沿うように回転させるには

いまいちAUTOCADの回転が使いこなせません。

ある角度の線をひき、この角度に沿うように図を回転させたいのですが、基点のとり方がわかりません。

たまにどうやったのかわからない内にできるのですが。。。

特に方位記号を回転させるときに困っています。

よろしくお願い致します。

Aベストアンサー

まず、回転させたいオブジェクトの基点が、元となる角度の線の端点、あるいは線上に
来るように移動させてください。
そこから回転コマンドで、オブジェクトを選択
→回転の基点を指定
→参照なので「R」を入力
→基点をもう一度クリック(1)
→元となる角度にあわせたい、回転させたいオブジェクトの位置をクリック(2)
→元となる角度の線のどこか(基点とは別の位置)をクリック
(1)と(2)のなす角度が、基準となる線と
一致します。
言葉で説明すると、結構分かりにくいですね。

QVBAにてデータが数字か文字かを判定するには

VBAにてデータが数字か文字かを判定するには、
どうすれば良いのでしょうか?

文字数は任意で決まっていません。


123 ← 数字
あい ← 文字
1F  ← 文字
G  ← 文字

Aベストアンサー

こんにちは。

数字か文字かなら、IsNumeric でよいと思いますが、数値か文字かでしたら、VarType を使います。私の場合は、IsNumericは、めったに使いません。VarTypeのほうが多いですね。IsNumeric は、文字通り、文字か数字かで、文字列書式の数字も含まれます。なお、VBAでは、数字は、数値型に型キャストされますので、特に問題は発生しません。

ご参考までに。

Sub Test()
 If VarType(Range("A1").Value) = vbDouble Then
  MsgBox "数値"
 ElseIf VarType(Range("A1").Value) = vbString Then
  MsgBox "文字列"
 Else
  MsgBox "その他" '代表的なものはエラー値です
 End If
End Sub

-----------------------------------------
こちらの場合は、全角数字も、数字として扱われます。

Sub Test2()
 If IsNumeric(Range("A1").Value) Then
   MsgBox "数字"
 Else
   MsgBox "数字ではない"
 End If
End Sub

こんにちは。

数字か文字かなら、IsNumeric でよいと思いますが、数値か文字かでしたら、VarType を使います。私の場合は、IsNumericは、めったに使いません。VarTypeのほうが多いですね。IsNumeric は、文字通り、文字か数字かで、文字列書式の数字も含まれます。なお、VBAでは、数字は、数値型に型キャストされますので、特に問題は発生しません。

ご参考までに。

Sub Test()
 If VarType(Range("A1").Value) = vbDouble Then
  MsgBox "数値"
 ElseIf VarType(Range("A1").Value) = vbString Th...続きを読む


人気Q&Aランキング