
エクセル貼り付けた画像をセルにあった大きさにしたいのですが、
その際、縦と横の比率を変更したくありません。
縦と横の比率を変更せず、セルにおさまる最大の大きさで画像のサイズを
変えることは可能でしょうか。
-----------------------------------------------------------------------------
縦と横の比率が関係なく、セルいっぱいのサイズに画像の大きさを変更するVBAは
下記URLから見つけられたのですが、、、、、
http://q.hatena.ne.jp/1240648036

No.2ベストアンサー
- 回答日時:
No.1です。
>画像が置いてあるセル上で処理を行う
画像のどこを基準にするか?によってコードは変わってきますが、
画像の左上端のセルにその画像を縦・もしくは横いっぱいに配置するコードにしてみました。
Sub Sample2()
Dim mySp As Shape, myRng As Range
Dim myHgt As Double, myWdt As Double
For Each mySp In ActiveSheet.Shapes
With mySp
Set myRng = .TopLeftCell
myHgt = myRng.Height
myWdt = myRng.Width
.Top = myRng.Top
.Left = myRng.Left
.Height = myHgt
If .Width > myWdt Then
.Width = myWdt
End If
End With
Next mySp
End Sub
こんな感じではどうでしょうか?m(_ _)m
基点などの考えが及ばず申し訳ありません、
>画像の左上端のセル
はい、こちらがやりたかったことでした!汲んで頂いて本当にありがとうございます!!
今までの作業がとても効率的になりますし、本当に嬉しいです!!!
ありがとうございました!!!!!神様です!!
No.1
- 回答日時:
こんばんは!
縦横固定は考えず、画像の縦・もしくは横がセルいっぱいに収まればよい!
という考え方のコードです。
A1セルからA列に順にセル内の収まるようにしてみました。
仮にアクティブSheet上に画像が5個あればA1~A5セル内に画像が収まるはずです。
Sub Sample1()
Dim cnt As Long, mySp As Shape
Dim myHgt As Double, myWdt As Double
Dim myRH As Double, myRW As Double
For Each mySp In ActiveSheet.Shapes
cnt = cnt + 1
myHgt = mySp.Height
myWdt = mySp.Width
myRH = Cells(cnt, "A").Height
myRW = Cells(cnt, "A").Width
With mySp
.Left = Cells(cnt, "A").Left
.Top = Cells(cnt, "A").Top
.Height = myRH '//一旦画像の高さをセルの高さに合わせる
'//▼ 画像がセル幅より大きい場合はセル幅に合わせる
If .Width > myRW Then
.Width = myRW
End If
End With
Next mySp
End Sub
こんな感じではどうでしょうか?m(_ _)m
ありがとうございます!!!
画像が奇麗なままでぴったりと収まりました!!
こちら、画像が置いてあるセル上で処理を行う(A列に並べない)場合は
どのようにすればよいでしょうか。説明が足りておらず申し訳ありません。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【VBA】写真の縦横比を変えずに貼り付ける
Visual Basic(VBA)
-
エクセル(2013)VBA-図の縦横比を変えずにセルにおさまる最大限の大きさにする
Excel(エクセル)
-
【VBA】写真の貼り付けコードがうまく機能しません。
Visual Basic(VBA)
-
-
4
VBAでセルを指定した画像のコピー&ペーストを繰り返したい
Excel(エクセル)
-
5
Excel VBAでセル内の画像を選択したい
Excel(エクセル)
-
6
エクセルVBA 画像を貼り付けるセル位置を指定する方法
Excel(エクセル)
-
7
エクセルマクロでシート内にある画像のみを選択する
Excel(エクセル)
-
8
VBAでエクセルのシート上の画像のリサイズと配置を行いたい
Excel(エクセル)
-
9
Excel VBA素人です。VBAで図形のセンタリング方法ご教示下さい
Visual Basic(VBA)
-
10
Excel 画像貼り付けのVBAについて
Excel(エクセル)
-
11
エクセルVBAで縦向きの画像の挿入・回転
Excel(エクセル)
-
12
マクロを実行すると画像がズレてしまいます
その他(Microsoft Office)
-
13
VBAによるセル内の画像の位置調整
Excel(エクセル)
-
14
【エクセルVBA】シェイプのサイズとセルの縦横
Excel(エクセル)
-
15
EXCEL VBAで 図形を中央寄せに関して質問です
Excel(エクセル)
-
16
VBAで特定のセルに画像があれば削除、なければ貼り付けを行いたい
Excel(エクセル)
-
17
エクセル マクロで、選択している画像の数を数えたい
Excel(エクセル)
-
18
任意フォルダから画像をすべてエクセルの指定マスに貼り付けをしたい
Visual Basic(VBA)
-
19
Excelマクロ 選択画像の大きさを100%に
その他(Microsoft Office)
-
20
【EXCEL VBA】ダブルクリックでセルのサイズに合わせて画像を挿入に機能を追加したいです。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba テキストボックスとリフト...
-
エクセルで指定したセルのどれ...
-
貼り付けで複数セルに貼り付けたい
-
エクセル オートフィルタで絞...
-
セルをクリック⇒そのセルに入力...
-
Excel for Mac使用中ポインタが...
-
エクセルの書式設定の表示形式...
-
対象セル内(複数)が埋まった...
-
EXCEL VBA セルに既に入...
-
エクセルのセルの枠を超えて文...
-
Excel 例A(1+9) のように番地の...
-
Excelで住所を2つ(町名迄と番...
-
Excelで数式内の文字色を一部だ...
-
(Excel)数字記入セルの数値の後...
-
数式を残したまま、別のセルに...
-
【エクセル】IF関数 Aまたは...
-
EXCELのセルの中の半角カンマの...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
枠に収まらない文字を非表示に...
-
文字列として"(ダブルコーテー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba テキストボックスとリフト...
-
貼り付けで複数セルに貼り付けたい
-
エクセルで指定したセルのどれ...
-
枠に収まらない文字を非表示に...
-
セルをクリック⇒そのセルに入力...
-
エクセル
-
数式を残したまま、別のセルに...
-
(Excel)数字記入セルの数値の後...
-
エクセル オートフィルタで絞...
-
エクセルの書式設定の表示形式...
-
Excel 例A(1+9) のように番地の...
-
エクセルの一つのセルに複数の...
-
excelの特定のセルの隣のセル指...
-
EXCEL VBA セルに既に入...
-
Excelでのコメント表示位置
-
エクセルのセルの枠を超えて文...
-
【エクセル】IF関数 Aまたは...
-
対象セル内(複数)が埋まった...
-
Excelで数式内の文字色を一部だ...
-
【Excel】 セルの色での判断は...
おすすめ情報