[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『写真を、図形に合わせてトリミング』(ぺけ)
エクセルに、縦6.18 横2.85 の図形がありこの大きさに合わせて
写真を貼り付けます。人の写真で、全身のものや腰あたりまでのもの
様々です。枠の中心より上に線が引いてあり顔が中心に来るように
一つ一つ写真をトリミングして枠内に配置していっています。
ある程度手作業で、トリミングを行ってから図形を写真に配置して
図形に合わせてトリミングをしたいのですが見るでしょうか?
図形で、塗りつぶしの代わりに写真にすると写真の縦横比が変わって
しまうので。
< 使用 Excel:Excel2016、使用 OS:Windows8 >
(マナ) 2019/01/12(土) 13:17
ありがとうございます。
動作を、確認してみました。
写真を、選択してください のとこで、プログラムが止まってしまいます。
(ぺけ) 2019/01/12(土) 14:54
>Set myShape = ActiveSheet.Shapes("四角形 1")
この行は、実際の図形名に修正すること。
(マナ) 2019/01/12(土) 16:41
>Set myShape = ActiveSheet.Shapes("四角形 1")
ここを、実際の名前に変更してみました。
マクロは、動作するのですが・・・
写真の上に残したい位置に図形を置いているのですがその
大きさでトリミングを行ってくれません。
もちろん、写真の方が大きくて置いている図形の方が小さいです。
(ぺけ) 2019/01/13(日) 12:18
この作業をしないで、元の写真でマクロを実行するとどうなりますか?
(マナ) 2019/01/13(日) 14:54
ある程度手作業で、トリミングを行ってから図形を写真に配置して
→この作業を、せずに写真を挿入してマクロ実行していました。
再度、確認してみましたがやっぱり残したい図形の大きさでトリミングは
してくれないですね。
(ぺけ) 2019/01/13(日) 15:25
これは、トリミングはされるけど、
期待通りのサイズにならないという意味でしょうか。
こちらでは、Windowsのピクチャのサンプルフォルダに標準で入っていた
「ペンギン.jpg」でマクロを試してみましたが
ちゃんとトリミングされました。
他の写真でもだめですか?
(マナ) 2019/01/13(日) 16:33
ありがとうございます。
写真を、変更したら出来ました。
ただ、その写真だけはたまたま出来なかったみたいですね。
(ぺけ) 2019/01/13(日) 16:47
少なくとも、[[20060917194617]]のコードは、トリミング対象の図が(元図からの)拡大縮小を考慮してないということは理解していますか?
そもそも
>図形で、塗りつぶしの代わりに写真にすると写真の縦横比が変わってしまう
「図をテクスチャとして並べる」にチェックを入れれば済むだけのような気もします。
(チオチモリン) 2019/01/13(日) 21:53
会社でも、動作確認できたのですが・・・
縮小してから、上記のマクロが実行できると嬉しいのですが・・・。
そんなことは、無理ですか??
(ぺけ) 2019/01/15(火) 08:54
コピーして。図として貼り付け直してから、マクロを実行するとよいです。
その操作もマクロでするなら、
>dbl_mypicH = myPic.Height '写真の高
この次に、以下の6行を追加するとよいです。
myPic.CopyPicture myPic.Delete ActiveSheet.Paste Set myPic = ActiveSheet.Shapes(ActiveSheet.Shapes.Count) myPic.Left = dbl_mypicL myPic.Top = dbl_mypicT
(マナ) 2019/01/15(火) 19:34
ありがとうございます。
会社を、出てしまったので自宅で動作確認しました。
思い通りの動作を、してくれました!
ありがとうございました。
あと、たまたま出来なかった写真もこれだったらちゃんとトリミングしてくれました。
(ぺけ) 2019/01/15(火) 22:28
デジカメ等で撮影された出処の分かっている写真
については動作するのですが何で撮影されたのか
たぶんスマホ?分からない写真についてはエラー
してしまいます。
ただ、縮小したあと手作業でコピーして図として貼付け
してからであれば動作します。
エラー内容は、写真ではありません と出ます。
対処方法ありますか?
(ぺけ) 2019/01/18(金) 07:03
(マナ) 2019/01/19(土) 09:41
はい、手作業では出来ます。
手作業で、写真サイズ縮小後→コピー→貼り付け してから、マクロを実行すると
枠の大きさでトリミングしてくれます。
(ぺけ) 2019/01/19(土) 10:42
これを、
'On Error Resume Next
として試してみてください。('を加えます)
2箇所あります。
(マナ) 2019/01/19(土) 10:55
トリミングが、左上の位置は正しくトリミングされるのですが
右側のトリミングが枠の1/3くらいになり下が枠より下にはみ出し
してしまいます。
↓の角は、合ってます。 −−−− | | | (ぺけ) 2019/01/19(土) 11:06
それは、何をしたとき???
>エラー内容は、写真ではありません と出ます。
トリミングされるのか、されないのか
状況が理解できません。
(マナ) 2019/01/19(土) 11:15
手作業で、コピー貼り付けをしてから実行すればエラーは出ません。
でも、'On Error Resume Next をしなければ「写真ではありません」となり
'On Error Resume Next をすると、左上だけ枠の位置でトリミングが実行されて
写真の大きさは枠幅の1/3になってしまい正しくトリミングがされません。
(ぺけ) 2019/01/19(土) 12:12
>>エラー内容は、写真ではありません と出ます。
>→'On Error Resume Next を、しなければ出ます。
このときトリミングはされているのですか?
(マナ) 2019/01/19(土) 12:21
その時は、トリミングはされません。
エラーが、出て止まって終了です。
(ぺけ) 2019/01/19(土) 12:50
myPic.Copy myPic.Delete ActiveSheet.PasteSpecial Format:="図 (JPEG)" Set myPic = ActiveSheet.Shapes(ActiveSheet.Shapes.Count) myPic.Left = dbl_mypicL myPic.Top = dbl_mypicT
(マナ) 2019/01/19(土) 13:21
私も、動作が不思議過ぎて説明が難しいのですが。
写真を、挿入して縮小かけずにそのままの写真をコピーして図として
貼付けをしてからマクロを実行するとうまくいきました。
縮小してからコピーして図として貼り付けだと上手くいきませんでした。
(ぺけ) 2019/01/19(土) 15:13
それは、どの写真ですか。
>デジカメ等で撮影された出処の分かっている写真
では、問題ないのですね。
(マナ) 2019/01/19(土) 15:35
はい。
デジカメで撮影されたと分かっている写真は問題ありません。
出所の分かっていない写真について動作しません。
なので、写真を挿入してコピー,貼り付け、最初に貼り付けた写真削除
というのが自動化できれば問題ないのかなと思っています。
(ぺけ) 2019/01/19(土) 16:20
>手作業で、写真サイズ縮小後→コピー→貼り付け してから、マクロを実行すると
>枠の大きさでトリミングしてくれます。
>(ぺけ) 2019/01/19(土) 10:42
と
>縮小してからコピーして図として貼り付けだと上手くいきませんでした。
>(ぺけ) 2019/01/19(土) 15:13
この違いはなんですか。
状況としては。前より悪くなっったという意味ですか?
(マナ) 2019/01/19(土) 16:56
コードの変更前と変更後の違いです。
悪くなったというか挿入してすぐコピー貼り付けをするか縮小してから
コピー貼り付けをするかなので悪くなったというより同じというか・・・。
(ぺけ) 2019/01/19(土) 17:09
これも、何を言っているのかわかりません。
ごめんなさい。ちょっと、頭を休ませます。
(マナ) 2019/01/19(土) 17:18
マクロが、動作しない写真は2000KB弱あり動作する方の写真は100〜200KB程です。
ファイルの重さも、関係ありますか?
(ぺけ) 2019/01/19(土) 18:56
写真を、挿入してから「図の圧縮」ボタンを押してからマクロを実行させると
動作することが分かりました。
(ぺけ) 2019/01/19(土) 19:32
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.