トップ回答者
Excel2010-VBA 画像「図の書式設定」のリセット

質問
-
ワークシートに張付けた画像に次の設定をしたのですがリセット方法が解りません。
With ActiveSheet.Shapes(1)
.AutoShapeType = msoShapeRoundedRectangle '角丸四角形
End With
その他の書式設定も色々としてあります。
課題:画像に設定した書式設定をVBAで全てリセットしたい。試行:リボンの[書式]⇒[調整]⇒[図のリセット]⇒「図のリセット」でなら全てリセットできている様です。
同様の事をマクロで行いたいのですが、マクロ記録ができません…!?
止むを得ず当該画像をマウス右クリックした時に表示される「図の書式設定」で手動にて気の付くところ全てをリセットしました。が、画像四隅の面取りが残ります…!?
マクロ記録したコードを整理し次のマクロを実行しましたが「角丸四角形」がリセットできません。
何が不足しているのでしょうか、又は他の気の利いたコードが有るのでしょうか、ご教授宜しくお願い致します。図の書式設定をリセットする - Win7(Excel2010) Macro
Sub TestMacro1()
ActiveSheet.Shapes.Range(Array("Picture 1")).Select
With Selection.ShapeRange
.Fill.Visible = msoFalse '…塗りつぶし
.Line.Visible = msoFalse '…線の色
.Shadow.Visible = msoFalse '…影
.Reflection.Type = msoReflectionTypeNone '…反射
.Glow.Radius = 0 '…光沢とぼかし
.ThreeD.Visible = msoFalse '…3D書式
.LockAspectRatio = msoTrue '…縦横比固定
.ScaleHeight 1!, msoTrue '…元のサイズに戻す
.ScaleWidth 1!, msoTrue '…〃
End With
End Sub
以上
回答
-
こんにちは。
> 試行:リボンの[書式]⇒[調整]⇒[図のリセット]⇒「図のリセット」でなら全てリセットできている様です。
下記のようにExecuteMsoメソッドで任意のコントロールを実行することができます。Option Explicit Public Sub Sample1() '[図のリセット]が有効な場合のみ実行 With Application.CommandBars If .GetEnabledMso("PictureReset") = True Then .ExecuteMso "PictureReset" End With End Sub Public Sub Sample2() '[図とサイズのリセット]が有効な場合のみ実行 With Application.CommandBars If .GetEnabledMso("PictureResetAndSize") = True Then .ExecuteMso "PictureResetAndSize" End With End Sub
引数のidMso(コントロールのID)の一覧表は下記Webページで紹介しているリンク先からダウンロードすることができます。
・Office製品のコントロール IDリスト
http://curah.microsoft.com/33208/office%E8%A3%BD%E5%93%81%E3%81%AE%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB-id%E3%83%AA%E3%82%B9%E3%83%88- 回答としてマーク sakuraxx 2015年1月27日 16:32
-
きぬあさ様、何時も大変お世話になっております。
掲題の件、クイックアクセスツールバーからコントロールIDを読み取ってみました。
これを使って試行してみました…成功。ご教授有難うございました。
-------------------------------------------
トリミング PictureCrop
塗りつぶし PictureFillCrop
枠に合わせる PictureFitCrop
図の変更 PictureChange
図をファイルから挿入 PictureInsertFromFile
-------------------------------------------sakuraxx
- 回答としてマーク sakuraxx 2015年1月27日 16:31
すべての返信
-
こんにちは。
> 試行:リボンの[書式]⇒[調整]⇒[図のリセット]⇒「図のリセット」でなら全てリセットできている様です。
下記のようにExecuteMsoメソッドで任意のコントロールを実行することができます。Option Explicit Public Sub Sample1() '[図のリセット]が有効な場合のみ実行 With Application.CommandBars If .GetEnabledMso("PictureReset") = True Then .ExecuteMso "PictureReset" End With End Sub Public Sub Sample2() '[図とサイズのリセット]が有効な場合のみ実行 With Application.CommandBars If .GetEnabledMso("PictureResetAndSize") = True Then .ExecuteMso "PictureResetAndSize" End With End Sub
引数のidMso(コントロールのID)の一覧表は下記Webページで紹介しているリンク先からダウンロードすることができます。
・Office製品のコントロール IDリスト
http://curah.microsoft.com/33208/office%E8%A3%BD%E5%93%81%E3%81%AE%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB-id%E3%83%AA%E3%82%B9%E3%83%88- 回答としてマーク sakuraxx 2015年1月27日 16:32
-
きぬあさ様、何時も大変お世話になっております。
掲題の件、クイックアクセスツールバーからコントロールIDを読み取ってみました。
これを使って試行してみました…成功。ご教授有難うございました。
-------------------------------------------
トリミング PictureCrop
塗りつぶし PictureFillCrop
枠に合わせる PictureFitCrop
図の変更 PictureChange
図をファイルから挿入 PictureInsertFromFile
-------------------------------------------sakuraxx
- 回答としてマーク sakuraxx 2015年1月27日 16:31