Excel VBA 質問スレッド №2118 (解決済)
画像が指定したセルにおさまらない
投稿者 : ももネクター 投稿日時 : 2025/05/27(Tue) 13:48:50 OS : Windows 11 EXCEL : Excel 2021
素人です。
iphoneで撮影した縦型の画像(3024×4032)がセルから縦がはみ出ます。
(3120×4160の場合ははみ出ない)
解決策を教えてください。
-------------------------------------------------
-------------------------------------------------
素人です。
iphoneで撮影した縦型の画像(3024×4032)がセルから縦がはみ出ます。
(3120×4160の場合ははみ出ない)
解決策を教えてください。
-------------------------------------------------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i As Long
Dim j As Long
Dim FileName As Variant
Dim rX As Double, rY As Double
If ActiveCell.Value Like "ダブルクリックで*" Then
FileName = Application.GetOpenFilename( _
FileFilter:="画像ファイル,*.bmp;*.jpg;*.gif", _
MultiSelect:=True)
If Not IsArray(FileName) Then
Exit Sub
End If
For Each sp In ActiveSheet.Shapes
If sp.TopLeftCell.Column = 1 Then
sp.Delete
End If
Next
j = 1
For i = LBound(FileName) To UBound(FileName)
With ActiveSheet.Shapes.AddPicture( _
FileName:=FileName(i), _
LinkToFile:=False, _
SaveWithDocument:=True, _
Left:=Selection.Left, _
Top:=Selection.Top, _
Width:=-1, _
Height:=-1)
'縦横比を固定
.LockAspectRatio = msoTrue
'セルにあわせて移動やサイズ変更
.Placement = xlMoveAndSize
'一旦、元のサイズに戻す
.ScaleHeight 1, msoTrue
.ScaleWidth 1, msoTrue
rX = Target.Width / .Width
rY = Target.Height / .Height
If rX > rY Then
.Height = .Height * rY
Else
.Width = .Width * rX
End If
'セルの中央(横方向/縦方向の中央)に配置
.Left = Target.Left + (Target.Width - .Width) / 2
.Top = Target.Top + (Target.Height - .Height) / 2
End With
j = j + 1
Next i
Cancel = True
End If
End Sub
-------------------------------------------------
スポンサーリンク
[返信 1] Re : 画像が指定したセルにおさまらない
投稿者 : てらてら 投稿日時 : 2025/05/27(Tue) 19:52:19
こんにちは。
提示されたコードで試してみましたが正常に動作するようです。
iPhoneで撮影した縦型の画像という事なので、jpgでしたら横向き情報が付いているのかもしれません。
ペイントで保存し直すと治るかもしれません。
https://help-vba.com/jpg-rotate/
ちなみに横向き情報が付いた画像ではセルからはみ出ました。
外していたらごめんなさい。
こんにちは。
提示されたコードで試してみましたが正常に動作するようです。
iPhoneで撮影した縦型の画像という事なので、jpgでしたら横向き情報が付いているのかもしれません。
ペイントで保存し直すと治るかもしれません。
https://help-vba.com/jpg-rotate/
ちなみに横向き情報が付いた画像ではセルからはみ出ました。
外していたらごめんなさい。
[返信 2] Re : 画像が指定したセルにおさまらない
投稿者 : ももネクター 投稿日時 : 2025/05/28(Wed) 10:39:05
てらてらさん
ペイントで保存することで解決しました。
ありがとうございました。
てらてらさん
ペイントで保存することで解決しました。
ありがとうございました。
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2025-11-08 07:03:04 )