この掲示板は AutoCADマクロ屋本舗 の掲示板です。

【 注意 】最初に必ず ↓↓ 下記内容 ↓↓ を参照ください。
① マクロが分からない方は、まず 【 マクロ講座 】 を参照ください。
② 質問の前に 【 マクロ使用前の注意事項 】 をお読みください。
③ 質問する時は、新規投稿フォーム下の【 新規投稿時のお願い 】を必ずお読みください。

キャドからエクセルに文字を複写したい
とってぃ様
LT2023を使用しています。仕事でキャドの文字を複写して、エクセルに貼り付けることがあります。
手順として、キャドの文字を編集コマンドで、エディターを表示させ文字をコピーします。エディターをキャンセルで消して、エクセルのセルを選択して文字を貼り付けています。
このような動作をマクロ化できないでしょうか?

よろしくお願いいたします。
  • モトエ
  • 2022/07/15 (Fri) 10:02:58
Re: キャドからエクセルに文字を複写したい
とってぃ様ご指名で申し訳ないですが、 ちょっと逆質問です。

①文字を編集コマンドで、エディターを表示させる
②文字をコピーします。
③エディターをキャンセルで消して、
④エクセルのセルを選択して
⑤文字を貼り付け

どこから、どこまでを自動化したいのでしょうか?
①はマクロで可能
②③はマクロでは不可能
④⑤はEXCEL側での処理なのでマクロでは無理。


例えば、人間のやる操作を、
①マクロ起動
②文字オブジェクトクリック
③EXCELのセルをクリック

この3手だけで済ませたい。なんて事なら外部ツールを利用したプログラミングが必要です。

また、
③EXCELのセルをクリック
を、
③EXCELのセルを右クリックして貼付け
として良いのなら、プログラミングの難易度はグッと下がります。
  • Lon
  • 2022/07/15 (Fri) 11:42:10
キャドからエクセルに文字を複写したい"解決"
Lon様
早速の書き込みありがとうございます。ご質問の①~③までの動作がマクロ化できればいいなと思いました。
しかしながら、②.③のマクロ化は無理との内容を目にしてあきらめざるを得ません。
外部ツールの物とかは、恐れ多くてお願いできません。
確かにおっしゃる通り
①マクロ起動
②文字オブジェクトクリック
③EXCELのセルをクリック    で完結できればと思っていました。

大変ありがとうございました。解決とさせていただきます。
  • モトエ
  • 2022/07/15 (Fri) 14:11:04
Re: キャドからエクセルに文字を複写したい
興味が有れば、試してみて下さい。
https://totthi.bbs.fc2.com/?act=reply&tid=16735582#24417521
  • Lon
  • 2022/07/15 (Fri) 15:20:05
Re: キャドからエクセルに文字を複写したい(再)
Lon様
ありがとうございます。
早速 教書の通りにしたはずですがエラーが出てしまいました。
画像の貼付けがままならないので内容を列記します。

 スクリプト:D:TextClip.vbs
行:8
文字:1
エラー:プロシージャの呼び出し、または引数が不正です。:'mid'
コード:800A0005
ソース:MicrosoftVBSScript実行時エラー

という内容です。
 私的には、まったく理解できません。
なにとぞよろしくお願いいたします。
  • モトエ
  • 2022/07/15 (Fri) 21:15:13
Re: キャドからエクセルに文字を複写したい
とりあえず、マクロをこちらに変更してみて下さい。
*^C^Cchange;si;\;;;;;$M=$(if,$(getvar,cmdactive),,change;p;;;;;;)lonLONLon;u;copyhist;GRAPHSCR;AI_STARTAPP "D:TextClip.vbs"^M

原因がこれじゃないなら、

文字オブジェクトが存在するファイルを開いたら、すぐにマクロを実行してください。
文字をクリックしたら、(VBSのエラー表示は無視をして)メモ帳を開いて、
右クリックして貼付けを行ってください。

そこに表示されているコマンド履歴を、ここの掲示板に貼り付けて報告して下さい。

もし何も貼り付かないのなら、「何も無かった」と報告して下さい。
そして、Autocadで、「copyhist」と入力して、もう一度メモ帳で貼付けを行ってください。

そこに表示されたコマンド履歴を、ここの掲示板に貼り付けて報告して下さい。
  • Lon
  • 2022/07/16 (Sat) 10:23:10
Re: キャドからエクセルに文字を複写したい
Lon様
ありがとうございます。張り付けてみます。
---------------------------
Windows Script Host
---------------------------
スクリプト: D:\TextClip.vbs
行: 8
文字: 1
エラー: プロシージャの呼び出し、または引数が不正です。: 'mid'
コード: 800A0005
ソース: Microsoft VBScript 実行時エラー

---------------------------
OK
---------------------------
モデルを再作図中。
*キャンセル*

コマンド:
コマンド:
コマンド: <グリッド オフ>
コマンド:
コマンド:
コマンド: _cui
コマンド: もう一方のコーナーを指定 または [フェンス(F)/ポリゴン窓(WP)/ポリゴン交差(CP)]:
コマンド:
コマンド:
コマンド: _text
現在の文字スタイル: "Standard" 文字の高さ: 2.5000 異尺度対応: いいえ 位置合わせ: 左寄せ
文字列の始点を指定 または [位置合わせオプション(J)/文字スタイル変更(S)]:
高さを指定 <2.5000>: h

距離を数値で入力してください または 2 点目を指定。

高さを指定 <2.5000>: 50

文字列の角度を指定 <0>:

文字列を入力: 1.0m+1.0m+2個+3.0m
文字列を入力:
コマンド:
コマンド:
コマンド: change

オブジェクトを選択: si

オブジェクトを選択: 認識された数: 1
変更位置を指定 または [プロパティ(P)]:

文字列の新しい挿入位置を指定 <変更しない>:

新しい文字スタイルを入力 <Standard>:

新しい高さを指定 <50.0000>:

新しい角度を指定 <0>:

新しい文字を入力 <1.0m+1.0m+2個+3.0m>: lonLONLon

コマンド: u
test
コマンド: copyhist

コマンド: GRAPHSCR

コマンド: AI_STARTAPP D:TextClip.vbs


コマンド:
コマンド:
コマンド: change

オブジェクトを選択: si

オブジェクトを選択: *キャンセル*

コマンド: *キャンセル*

コマンド:
コマンド:
コマンド: change

オブジェクトを選択: si

オブジェクトを選択: 認識された数: 1
変更位置を指定 または [プロパティ(P)]:

文字列の新しい挿入位置を指定 <変更しない>:

新しい文字スタイルを入力 <Standard>:

新しい高さを指定 <50.0000>:

新しい角度を指定 <0>:

新しい文字を入力 <1.0m+1.0m+2個+3.0m>: lonLONLon

コマンド: u
test
コマンド: copyhist

コマンド: GRAPHSCR

コマンド: AI_STARTAPP D:TextClip.vbs


コマンド:
コマンド:
コマンド: change

オブジェクトを選択: si

オブジェクトを選択: 認識された数: 1
変更位置を指定 または [プロパティ(P)]:

文字列の新しい挿入位置を指定 <変更しない>:

新しい文字スタイルを入力 <Standard>:

新しい高さを指定 <50.0000>:

新しい角度を指定 <0>:

新しい文字を入力 <1.0m+1.0m+2個+3.0m>: lonLONLon

コマンド: u
CHANGE
コマンド: copyhist
わからぬまま 張り付けてみました。

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

  • モトエ
  • 2022/07/16 (Sat) 19:05:56
Re: キャドからエクセルに文字を複写したい
もしかしたらVBSファイルの保存形式の問題かもしれません。
次の事を試して下さい。

TextClip.vbsファイルをメモ帳で開きます。
名前を付けて保存を行います。
その時、保存ダイアログの一番下に「文字コード」の設定を選ぶ所があります。
そこを、「ANSI」にして下さい。
そのままの名前で保存してください。

これでもう一度マクロを試して下さい。
  • Lon
  • 2022/07/16 (Sat) 19:35:08
ありがとうございます
Lon様
ありがとうございます。こちらの無知から発生したことなのに、ご丁寧にご指導いただき誠にありがとうございます。
ご指摘の内容を確認したところ 見事に動作いたしました。本当にありがとうございます。
解決とさせていただきます。

益々のご活躍を祈念いたします。
  • モトエ
  • 2022/07/17 (Sun) 06:35:30

返信フォーム






プレビュー (投稿前に内容を確認)