[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『取り込んだ画像をトリミング状態に』(ナス)
初めまして、VBAについて質問させてください。
Excelに画像を取り込んだ後、上部バーの「図の形式」にある「トリミング」
を押した状態(トリミング自体は手動で行いたい)にする方法があれば教えて欲しいです。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
ActiveSheet.Pictures.Insert("ほにゃらら.jpg").Select Application.CommandBars.ExecuteMso "PictureCrop" (´・ω・`) 2021/09/21(火) 15:31
頂いた式を使用させていただいたのですが、選択状態になるだけで、トリミング状態には
なりませんでした。
原因が分かれば教えていただきたいです。
(ナス) 2021/09/22(水) 10:52
2010だからでしょうか? 2013で動作確認しています。 でも idMsoは変わってないと思うんですよね。 https://docs.microsoft.com/en-us/openspecs/office_standards/ms-customui/bb5bb594-ec8c-45f6-8424-f98e8308b25a
ちなみに、どうやって実行してますか? (´・ω・`) 2021/09/22(水) 11:36
(γ) 2021/09/22(水) 12:04
式全体はこのようになります。
Sub 画像取り込みとトリミング()
Dim PicFile
PicFile = Application.GetOpenFilename("画像ファイル " & "(*.tif), *.tif", Title:="ファイル選択")
If PicFile = False Then Exit Sub
With ActiveSheet.Pictures.Insert(PicFile)
.CopyPicture
.Delete
End With
Range("A1").Select
ActiveSheet.Paste
ActiveSheet.Shapes(4).Select
Application.CommandBars.ExecuteMso "PictureCrop"
End Sub
元画像を消した後、対象の画像をトリミング状態にしたいため、最後に頂いた2行を少し改変したものを追加させていただいきました。
実行はマクロボタンを押しています。
>>γ様
ということは私の式のどこかに原因があるということでしょうか。
もし原因が分かれば教えていただきたいです。
(ナス) 2021/09/22(水) 12:12
もし、フォームコントロールのボタンで実行しているようであればActiveXのボタンで実行するようにしてみてはどうか? EXCEL2016ではそれでトリミング状態になった。 フォームコントロールの方ではマクロでトリミング状態になっても解除されてしまうようだ。 (ねむねむ) 2021/09/22(水) 12:23
ActiveSheet.Shapes(4)というのは、
その対象となっている画像であることは間違いないですか?
ステップ実行してみては?
(γ) 2021/09/22(水) 12:33
すでに書き込みがあるように フォームコントロールのボタンから実行すると 一端トリミング状態になったあと、プロシジャから抜けるとトリミングの状態が解除されるようです これに対する対応策はちょっと思いつきません 私もActiveXコントロール使うのがいいと思います。
ActiveSheet.Shapes(4).Select は不要だと思います。 Pasteした直後はSelectされているので。 (´・ω・`) 2021/09/22(水) 12:46
ご教授ありがとうございました。
ActiveXコントロールは使ったことがないので、いろいろ調べてみようとおもいます。
(ナス) 2021/09/22(水) 15:56
>実行はマクロボタンを押しています。 これが回答なのでは? 実際にはマクロボタンに該当するものが2種類あるが状況からフォームボタンだと。 (ねむねむ) 2021/09/22(水) 16:30
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.