- ベストアンサー
オートシェイプに関するマクロ
エクセルのオートシェイプの書式設定のサイズの倍率(縦横比を固定)を、120%にするマクロって可能でしょうか? 沢山の図形の大きさを調節する作業があるのですが、その都度オートシェイプの書式設定を開いて値を入力すると大変な手間になってしまいます。 図形をセレクトしてマクロを実行するだけで、大きさを変化させるようにしたいのですが。 ご存知の方がいましたら、よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
選択したシェイプのサイズを変えるならMACRO2、全てのシェイプを変えたいならMACRO1で行けると思います Sub Macro1() Dim shp As Shape For Each shp In ActiveSheet.Shapes shp.ScaleWidth 1.2, msoFalse, msoScaleFromTopLeft shp.ScaleHeight 1.2, msoFalse, msoScaleFromTopLeft Next End Sub Sub Macro2() Dim shp As Shape On Error Resume Next Selection.ShapeRange.ScaleWidth 1.2, msoFalse, msoScaleFromTopLeft Selection.ShapeRange.ScaleHeight 1.2, msoFalse, msoScaleFromTopLeft End Sub
その他の回答 (2)
- wakamoto
- ベストアンサー率39% (35/89)
原始的なやり方ですが、 ツール~のメニューに「新しいマクロの記録」という項目があるでしょうか? VBAの式編集するのではなく、いつもの作業を録音のように記録して、再実行させるやり方です。 まず、最初に編集する図形を選択した状態で、 ツール~新しいマクロの記録をクリック マクロの名前は初期設定では「Macro1」になっています。わかりやすい名前に変更してください。 保存先が作業中のブックになっていることを確認して、「OK」 小さいけれどマクロツールバーが表示されるはずです。 以降、あなたの動作がテープレコーダーに録音するように記録されます。 一連の作業が終わったところで、マクロツールバーの「■(記録の終了)」をクリックします。 次に、2つめの図形を選択した状態で ツール~マクロ、先ほど作成したマクロ名を選択して「実行」すれば、 自動的に複数の作業を繰り返してくれます。 こうして次の図へと繰り返していく方法です。 このマクロをツールバーに表示させる事が出来ます。 表示設定のコマンドのユーザー設定です。 ちなみに、マクロの記録中の動作はすべて記録され無駄な動作も繰り返されます。 が、その不要部分を編集するのはややこしいと思ういますし、そんなに重くなる作業でもないと思うので、結果オーライでよいかと思います。 気になるようでしたら記録したマクロ名を削除して、再度作成してください。
お礼
有難うございます。
- misatoanna
- ベストアンサー率58% (528/896)
Sub Test() With Selection.ShapeRange .LockAspectRatio = msoTrue .Width = .Width * 1.2 End With End Sub フォームのボタンなどを作成してこのマクロを登録しておけば、拡大したい図形を選択 した状態でボタンをクリックするだけで実行されます。
お礼
有難うございます。
お礼
有難うございます。