
No.1ベストアンサー
- 回答日時:
こんばんは、
参考になるか分かりませんが、サンプルです。
Sub ShapeResize()
Dim shp As Shape
Dim shpCell As Range
For Each shp In ActiveSheet.Shapes
With shp
Set shpCell = .TopLeftCell
.LockAspectRatio = msoTrue
.Height = shpCell.Height * 0.9
If .Width > shpCell.Width Then
.Width = shpCell.Width * 0.9
End If
.Left = shpCell.Left + (shpCell.Width - .Width) / 2
.Top = shpCell.Top + (shpCell.Height - .Height) / 2
End With
Set shpCell = Nothing
Next shp
End Sub
・シート上の画像全てがリサイズできる
For Each shp In ActiveSheet.Shapes
・縦横比は維持する
.LockAspectRatio = msoTrue
・画像の左上端がおさまっているセルの大きさに対して
Set shpCell = .TopLeftCell 'セルをセット
上下左右わずかに余白が生じるサイズにし、
.Height = shpCell.Height * 0.9
If .Width > shpCell.Width Then
.Width = shpCell.Width * 0.9
End If
*Shapeの大きさとセルの大きさが分からないのと比を維持する為に
セルの幅、高さの小さい方に合わせてリサイズしリサイズされた
ShapeがshpCell.Widthに収まっていない場合は、
更にshpCell.Widthでリサイズしています。
セルの中心におさめる
.Left = shpCell.Left + (shpCell.Width - .Width) / 2
.Top = shpCell.Top + (shpCell.Height - .Height) / 2
ありがとうございます!
まさに実現したい動きをしてくれるもので本当に助かりました!
それぞれのコードの働きも書いてくださったので
アレンジしたパターンが必要になった時には参考にさせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) ある数値に対して、値を返す数式についてです 2 2022/09/13 22:06
- Excel(エクセル) エクセルのマクロで複数条件に当てはまるものを全て抽出したいです 7 2022/05/21 08:51
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- フリーソフト 倍率自動調整して全画面表示できるフリーの画像ビューアー 1 2023/08/24 10:55
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
- Excel(エクセル) エクセルで複数設定したハイパーリンク先を、どれを選んでも画面の左上に来るようにしたいのですが・・・ 3 2022/04/07 16:15
- Illustrator(イラストレーター) ペイントでサイズを小さくする 5 2023/06/17 10:33
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
このQ&Aを見た人はこんなQ&Aも見ています
-
【VBA】写真の縦横比を変えずに貼り付ける
Visual Basic(VBA)
-
エクセル(2013)VBA-図の縦横比を変えずにセルにおさまる最大限の大きさにする
Excel(エクセル)
-
エクセルVBA 画像を貼り付けるセル位置を指定する方法
Excel(エクセル)
-
-
4
VBAエクセルに貼り付けた画像をセルにあった大きさにしたい(等倍)
Excel(エクセル)
-
5
エクセルマクロでシート内にある画像のみを選択する
Excel(エクセル)
-
6
Excel 画像貼り付けのVBAについて
Excel(エクセル)
-
7
マクロを実行すると画像がズレてしまいます
その他(Microsoft Office)
-
8
Excel VBAでセル内の画像を選択したい
Excel(エクセル)
-
9
VBAで特定のセルに画像があれば削除、なければ貼り付けを行いたい
Excel(エクセル)
-
10
エクセル 画像のプロパティで縦横比を固定する。 これをVBAでコードにできますか? 知ってる方おられ
Visual Basic(VBA)
-
11
画像を削除したい(VBA)
Word(ワード)
-
12
エクセルVBAで縦向きの画像の挿入・回転
Excel(エクセル)
-
13
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
14
【EXCEL VBA】ダブルクリックでセルのサイズに合わせて画像を挿入に機能を追加したいです。
Visual Basic(VBA)
-
15
EXCELに画像を貼り付けマクロの画像大きさ調整にについて教えてください。
その他(Microsoft Office)
-
16
VBAでセルを指定した画像のコピー&ペーストを繰り返したい
Excel(エクセル)
-
17
【VBA】写真の貼り付けコードがうまく機能しません。
Visual Basic(VBA)
-
18
画像を結合セルの大きさで貼付(以前に回答されたマクロについて)
PowerPoint(パワーポイント)
-
19
エクセルに画像を貼付け縮小する作業をマクロにしたいのですが、
Excel(エクセル)
-
20
VBA Shapes コピーと名前
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルだけ結果がおかしい...
-
エクセルのdatedif関数を使って...
-
エクセルのVBAで集計をしたい
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
エクセル ドロップダウンリスト...
-
【関数】同じ関数なのに、エラ...
-
Office2021のエクセルで米国株...
-
【マクロ】列を折りたたみ非表...
-
9月17日でサービス終了らし...
-
【マクロ】アクティブセルの時...
-
ページが変なふうに切れる
-
【条件付き書式】シートの中で...
-
【マクロ】3行に上から下に並...
-
【マクロ】オートフィルターの...
-
【マクロ】EXCELで読込したCSV...
-
【画像あり】オートフィルター...
-
他のシートの検索
-
エクセルの循環参照、?
-
Excelファイルを開くと私だけVA...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報