|
フォーム上のイメージコントロールに画像を表示し、
その画像で良ければ、OKボタンを押してセルに張付けたい。
下記のコードで、画像ファイルのフルパスをセルに書き出さずに
フルパスを受け取りたいのですが、どのように直せば良いか教えて下さい。
以下、コード。
画像をファイルから選択し、Image1に表示。----------------------------------------------------
Sub CommandButton1_Click
Dim FileType As String
Dim Dialog As String
Dim Filename As Variant
FileType = "画像ファイル (*.jpg;*.gif;*.png),*.jpg;*.gif;*.png," _
& "JPEG 形式 (*.jpg),*.jpg," _
& "GIF 形式 (*.gif),*.gif," _
& "PNG 形式 (*.png),*.png"
Dialog = "画像ファイルの選択"
Filename = Application.GetOpenFilename(FileType, , Dialog)
If Filename <> False Then
Image1.Picture = LoadPicture(Filename)
Else
Image1.Picture = LoadPicture("")
End If
End Sub
Image1の画像で良ければ、セルに貼付け。------------------------------------------------------
CommandButton2_Click
Dim Filename As Variant
Dim Shape As Variant
Dim MovCell As Range
Dim MovLeft As Double
Dim MovTop As Double
Dim MovHeight As Double
Dim MovWidth As Double
If Filename <> False Then
For Each Shape In Worksheets("Sheet1").DrawingObjects
If Not Intersect(Shape.TopLeftCell, Worksheets("Sheet1"). _
Range("F10:I21")) Is Nothing Then
Shape.Delete
End If
Next
Worksheets("Sheet1").Range("F10:I21").Value = Dir(Filename)
With Worksheets("Sheet1").Range("F10:I21")
MovLeft = .Left
MovTop = .Top
MovHeight = .Cells(.Count).Offset(1).Top - .Top
MovWidth = .Cells(.Count).Offset(, 1).Left - .Left
End With
With Worksheets("Sheet1").Shapes.AddPicture(Filename:=Filename, LinkToFile:=False, _
SaveWithDocument:=True, Left:=Selection.Left, _
Top:=Selection.Top, Width:=0, Height:=0)
End With
With Worksheets("Sheet1").Pictures(Worksheets("Sheet1").Pictures.Count).ShapeRange
.LockAspectRatio = msoFalse
.Parent.Visible = msoTrue
.Left = MovLeft
.Top = MovTop
.Height = MovHeight
.Width = MovWidth
.Line.Visible = msoTrue
.Line.Style = msoLineSingle
.Line.ForeColor.RGB = RGB(0, 0, 0)
.Line.Weight = 1.5
.Name = Dir(Filename)
End With
Else
For Each Shape In Worksheets("Sheet1").DrawingObjects
If Not Intersect(Shape.TopLeftCell, Worksheets("Sheet1"). _
Range("F10:I21")) Is Nothing Then
End
End If
Next
Worksheets("Sheet1").Range("F10:I21").Value = "ファイルが選択されていません。"
End If
|
|