Excel VBAマクロにより、シートに貼り付けられた画像を抽出しファイル保存する処理を自動で行いたいのですが、可能なのでしょうか?(Shape.AddPictureと逆の動作)

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/12/14 16:52:39
  • 終了:--

回答(2件)

id:upride No.1

upride回答回数220ベストアンサー獲得回数12004/12/14 20:26:08

ポイント25pt

マクロを記録するだけでは駄目ですが

VBAの範疇でしたら可能です

が、VB自体のコーディングがわからないと

書けないですね

shapeオブジェクトを列挙し

該当する名前なら切り取ると

クリップボードに画像バイナリが移ります

それにファイル名をつけて吐き出します

この場合ビットマップなのでbmpですね

どこに保存するかなどをユーザに

決めさせる場合ダイアログを

出す処理が必要になります

うーんVBで書いた方が早いかも

っていうくらい

マクロとは言いがたい処理だと思います

id:sfyt

Shapeオブジェクトのメソッド内では、SaveAsは無いので、まずお手上げでした。

別案として、Copyでクリップボードにコピーできますが、そこから先どうしようもなくて。。。

CreateObjectでペイントを起動してPasteできるかと思ったのですが、Sendkeyによる制御しかできなそうでした。

2004/12/15 11:17:36
id:upride No.2

upride回答回数220ベストアンサー獲得回数12004/12/15 13:13:55

ポイント25pt

sfytさんは慣れてらっしゃるようなので

こちら紹介します

明熊JPG保存DLLを使うことで

十分できます

(xlsファイルだけでは実行できなくなりますが)

id:sfyt

自分が使いたいだけでなく他人にも使わせたく、配布コストを最小限に抑えたかったため、Excel VBAを選択しました。DLLを使う方法はちょっと・・・

で、なんとか自力で解決できました。

ExcelからHTML形式での保存を行うと、構成ファイルを分離してフォルダにまとめてくれるのを利用しました。

ExcelオブジェクトのSaveAsでxlhtml形式での保存を行い、.filesフォルダの中身をGetFolderで探って、.jpgファイルのみを保存用フォルダにCopyFileしました。

お騒がせしました。

2004/12/15 15:28:08

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません