[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『エクセルに貼り付けされている写真を上から順番に取り出したい』(高梨)
写真貼り付けソフトよりエクセル書き出しをした
エクセルファイルから写真データを取り出したいです。
1枚に、2〜3枚貼りついていて多いものではページ数が50枚を超えます。
使用中のソフトでは、写真だけを落とすことができないようで。
(でも、このソフトは指定なので変更することができません)
よい方法を、ご教示ください。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
やっぱり、そのやり方しかないんですかね。
それで、やったのですが順番にならなかったので
他にないかな〜と思って質問しました。
(高梨) 2020/05/27(水) 23:38
少数例でしかみていませんが、shapeのZOrderPosition(PictureならZOrder)の順番に 連番が振られて mediaフォルダに書き出されているのではないかと思われます。 で、それらの順序は位置関係ではなく、書き込まれた時刻の順序だろうと思われます。
Dim sp As Picture For Each sp In ActiveSheet.Pictures sp.BottomRightCell.Value = sp.ZOrder Next のようなコードで、それらのファイルが、どれに対応するものかはわかりますけど。 むろん写真の現物を見れば、それがどれに対応するものかはわかりますので、必要もないかもしれません。
位置関係の順に番号を振り直すことも、理屈の上からは可能でしょうね。(書く気はありませんが。)
(γ) 2020/05/28(木) 08:32
もっとも、こんな方法もあるかもしれません。
各画像をCopyPictureでクリップボードにコピーし、
それを、WindowsAPIを使ってクリップボードから例えばjpgファイルに転送するという方法です。
グラフィックフィルタを利用する方法だったように記憶します。
どなたか詳しい方からコメントがあればよいと思います。
いずれにせよ、TopLeftCellのアドレスをたよりに、
位置関係から順序を決めるロジックを書く必要はあると思います。
(γ) 2020/05/28(木) 08:44
案2。
対象ブックをZIPファイルとしてコピー。 保存されている画像ファイル名を元に、シート毎のXMLファイルを解析して、どの位置にどのファイル名が貼られているかをデータ化。 位置情報を元にソート。 ファイルを順番通りリネームしつつ、ZIPファイルから取り出す。 こういうマクロだと、劣化なしで処理できます。
いずれにせよ、掲示板で他人に作らせるレベルの処理内容ではないので、ご自身で頑張るか、諦めるのが良いかと思います。
(???) 2020/05/28(木) 11:34
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.