前提・実現したいこと
大事なところが抜けていた為、追記させていただきます。△1部分
excel VBAでセルの大きさに合わせて、画像をリサイズ挿入したいです。
<手順>
①所定セルをダブルクリック(添付画像:B4)
②予め指定したフォルダのダイアログボックスが開く
③画像を選択し開く
④セルの大きさに収まった大きさで画像が貼り付けられる。
△1.貼付画像の保管先が変更されると、”リンク先されたイメージを表示できません。”となる為、
貼付画像の保管先が変更されても影響されないようにしたいと考えております。
△1
発生している問題・エラーメッセージ
セルに合わせて画像が貼り付けられるのですが、excelファイルサイズが画像ファイルサイズの倍以上のファイルサイズになってしまう為、ファイルサイズアップを防ぎたいです。
VBA
1Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _ 2Cancel As Boolean) 3Dim myPic 4Dim myRange As Range 5Dim rX As Double, rY As Double 6 7Dim myPath As String 8myPath = "C:\画像" 9 10With CreateObject("WScript.Shell") 11 .CurrentDirectory = myPath 12End With 13 14 15myPic = Application.GetOpenFilename("画像ファイル,*.jpg;*.jpeg;*.gif;*.tif") 16If VarType(myPic) = vbBoolean Then Exit Sub 17 18Set myRange = Target 19 20 21Application.ScreenUpdating = False 22With ActiveSheet.Pictures.Insert(myPic) 23 24 25 rX = myRange.Width / .Width 26 rY = myRange.Height / .Height 27 If rX > rY Then 28 .Height = .Height * rY 29 Else 30 .Width = .Width * rX 31 End If 32 33 .Left = .Left + (myRange.Width - .Width) / 2 34 .Top = .Top + (myRange.Height - .Height) / 2 35 36 .CopyPicture 37 .Delete 38End With 39 40ActiveSheet.Paste 41 42Application.ScreenUpdating = True 43Cancel = True 44End Sub 45 46
回答3件
あなたの回答
tips
プレビュー