ここから本文です

Excelの図の挿入マクロについてわからないので教えてください。

chi********さん

2018/3/1118:29:54

Excelの図の挿入マクロについてわからないので教えてください。

下記の内容では、Widthと Heightを両方指定しないと図の挿入ができませんが、
縦横の比率は固定したまま、Heightのみ数値を指定したのですが、
どうすればいいのでしょうか?
すみませんが、よろしくお願いいたします。

Sub 図の貼り付け()
Dim lngTop As Long
Dim objFile As Object
Dim objFldr As FileSystemObject
Dim StrPath As String

Set objFldr = CreateObject("Scripting.FileSystemObject")

With Application.FileDialog(msoFileDialogFolderPicker)
.Show
StrPath = .SelectedItems(1)
End With

Range("a3").Select

For Each objFile In objFldr.GetFolder(StrPath).Files
ActiveSheet.Shapes.AddPicture _
Filename:=objFile, _
LinkToFile:=False, _
SaveWithDocument:=True, _
Left:=Selection.Left, _
Top:=Selection.Top, _
Width:=150, _
Height:=100


ActiveCell.Offset(13, 0).Select

Next


End Sub

閲覧数:
55
回答数:
2
お礼:
50枚

違反報告

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

だるまさん

2018/3/1119:25:47

>ActiveSheet.Shapes.AddPicture _
Filename:=objFile, _
LinkToFile:=False, _
SaveWithDocument:=True, _
Left:=Selection.Left, _
Top:=Selection.Top, _
Width:=150, _
Height:=100



With ActiveSheet.Shapes.AddPicture( _
Filename:=objFile, _
LinkToFile:=False, _
SaveWithDocument:=True, _
Left:=Selection.Left, _
Top:=Selection.Top, _
Width:=0, _
Height:=0)

.LockAspectRatio = msoTrue
.ScaleWidth 1, RelativeToOriginalSize:=msoTrue, Scale:=msoScaleFromTopLeft
.ScaleHeight 1, RelativeToOriginalSize:=msoTrue, Scale:=msoScaleFromTopLeft

.Height = 100
End With

でいかがでしょうか。

質問した人からのコメント

2018/3/12 13:00:06

図の縦横の比率が変わってしまい困っていましたが、おかげさまで解決できました。ありがとうございます!!

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

1〜1件/1件中

gog********さん

2018/3/1118:31:52

WidthはHeightから算出すればいいのです。

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

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

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

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

閉じる

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

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

閉じる