2016-09-15 5 views
0

userform 내에 포함 된 이미지 컨트롤에 그림을로드했습니다. 나는 userform 이미지 컨트롤에서 그림을 복사하여 스프레드 시트에 붙여 넣고 싶습니다. 스프레드 시트 내에서 OLEObject를 만들고 이미지를 here으로 옮기는 방법을 찾았지만 여러 스프레드 시트를 만들고 모든 추가 개체를 원하지 않습니다.그림을 userform에서 스프레드 시트로 복사

VBA 편집기, 사용자 정의, 이미지 컨트롤, 마우스를 사용하여 그림 속성에서 (비트 맵)을 선택하고 복사하면 스프레드 시트에 그림 만 붙여 넣을 수 있습니다.

매크로 레코더를 사용하여 동일한 작업을 수행하는 경우 코드에는 자연스럽게 선택 및 붙여 넣기 메서드 만 포함됩니다. 그리고 코드 내의 동일한 그림 속성을 참조하면 핸들이 다시 나타납니다.

나는 광범위하게 수색, 나는 철저하게 믿고, 나는 프로그램 핸들을 잡는 수단을 찾아 VBA의 사진을 붙여 넣기 할 수 없습니다. 나는 그것이 VBA에 상당히 새롭고 API 레벨 작업은 현재의 능력을 훨씬 능가합니다.

+0

어떻게 사진이 처음에 이미지 컨트롤에 나올까요? –

+0

공유 할 수있는 샘플 코드가 작동하지 않습니까? 사용자 정의 폼의 이미지 컨트롤 이름과 대상 워크 시트 셀을 표시하는 Somehting? – dbmitch

+0

@ Tim Williams, 그림이 수동으로 userform에로드되었습니다. 그림은 필요에 따라 변경할 수 있으므로 양식은 네트워크에 저장된 이미지에 대한 경로를 쓰는 대신 로컬 리소스입니다. – pondersome

답변

0

당신은 거기에서 임시 파일 및 부하에 내보낼 수 있습니다

Private Sub UserForm_Activate() 

    TransferToSheet Me.Image1, Sheet1 

End Sub 

Private Sub TransferToSheet(picControl, sht As Worksheet) 
    Const TemporaryFolder = 2 
    Dim fso, p 
    Set fso = CreateObject("scripting.filesystemobject") 
    p = fso.GetSpecialFolder(TemporaryFolder).Path & "\" & fso.gettempname 
    SavePicture picControl.Picture, p 
    sht.Pictures.Insert p 
    fso.deletefile p 
End Sub 
+0

놀라워요! 정말 고맙습니다. 이것은 완벽하게 작동합니다! – pondersome

관련 문제