ここから本文です

Excelに、VBAを使って画像を一度に何枚か貼り付けたいのですが、その際のサイズの...

m_o********さん

2018/10/1117:52:02

Excelに、VBAを使って画像を一度に何枚か貼り付けたいのですが、その際のサイズの指定方法がわかりません。
画像のサイズはそれぞれ違うので、縦横比はそのままに、指定サイズに収まるようにしたいです。

(例えば30×30に指定したい場合、60×30の画像は30×15、60×90の画像は20×30になるように)
その際、セルのサイズを変更しなくてもいいようなやり方がいいです。
VBAはいろんなサイトを見て回ってコピペして使っている程度です。

現在使っているVBAは以下の通りです。
Sub 画像2枚横()
Dim fName, pict As Picture
fName = Application.GetOpenFilename("JPG, *.jpg", MultiSelect:=True)
If IsArray(fName) Then
For i = 1 To UBound(fName)
Set pict = ActiveSheet.Pictures.Insert(fName(i))
pict.TopLeftCell = ActiveCell
pict.Width = 385
ActiveCell.Offset(2, 0).Activate
Next i
End If
End Sub

ご教授お願いいたします。

閲覧数:
175
回答数:
2
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

amj********さん

2018/10/1411:59:34

一例です。

Sub m_o()
Dim fName As Variant
Dim i As Integer
Dim rng As String
Dim pict As Object
Dim ww As Double, wh As Double
fName = Application.GetOpenFilename("JPG, *.jpg", MultiSelect:=True)
If IsArray(fName) Then
For i = 1 To UBound(fName)
rng = Selection.Address
Range(rng).Select
With ActiveSheet.Shapes.AddPicture(FileName:=fName(i), LinkToFile:=False, SaveWithDocument:=True, _
Left:=Selection.Left, Top:=Selection.Top, Width:=0, Height:=0)
.ScaleHeight 1, msoTrue
.ScaleWidth 1, msoTrue
.LockAspectRatio = msoTrue
If .Width / Range(rng).Width > .Height / Range(rng).Height Then
.Width = Range(rng).Width
Else
.Height = Range(rng).Height
End If
.Left = Range(rng).Left + (Range(rng).Width - .Width) / 2
.Top = Range(rng).Top + (Range(rng).Height - .Height) / 2
End With
ActiveCell.Offset(2, 0).Activate
Next i
End If
End Sub


回答しても全部投票にするので回答しても無駄のようですが。

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

だるまさん

2018/10/1118:52:33

>VBAを使って画像を一度に何枚か貼り付けたいのですが

コードの提示でなくて恐縮ですが、こんなフリーソフト
では役に立ちませんか。

ご希望に一番近いのは「新規ブックへアルバム作成」
メニューあたりかと思います。

画像貼付名人
http://www.vector.co.jp/soft/winnt/business/se509888.html

複数画像の貼り付けと調整が簡単に出来ます。


因みに、こんなのもあります。

画像貼付Express
http://www.vector.co.jp/soft/winnt/business/se513830.html

実用的な機能に絞り【簡単操作】を実現した、ワークシート画像貼付ソフトです。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる