2011-10-10 4 views
0

두 이미지 (이미지 컨트롤을 통해) 및 워크 시트 (활성 X 이미지 컨트롤을 통해)에 여러 번 표시해야하는 일련의 이미지가 있습니다. 파일을 외부에 보관하고 loadpicture 메서드를 사용할 수 있다는 것을 알고 있습니다. 가능하다면 피하고 싶은 것이 있습니다.Excel VBA : 이미지 컨트롤에서 activeX 개체로 그림 복사

나는 또한 저장하고로드 할 수 있다는 것을 알고 있지만 다시 작업을 수행하기 위해 외부 파일 쓰기를 사용하지 않을 것입니다. 이상적으로 모든 것이 포함되어 파일 자체에 숨겨져 있습니다.

아마도 클립 보드를 사용하여 해결책이 있다고 생각하지만 작동하도록 구문을 가져올 수 없습니다. 객체는 항상 동일한 위치에 임베드됩니다. 크기 나 다른 속성을 이동하거나 변경하지 않습니다 (보이지 않는 것). 그래서 제가하고 싶은 것은 간단합니다.

Sheet1.oleobjects("toImage").object.picture = frm1.fromImage.picture 

** 편집 : ** 나는이에 대한 해결책을 찾은 것 같아
; 그러나 여전히 관련 질문이 있습니다.

시트에 일련의 activeX 이미지를 포함하면 원하는대로 할 수있었습니다. 그런 다음 실제 컨트롤/개체에서 참조하십시오. 그래서;

Sheet1.oleobjects("toImage").object.picture=Sheet1.oleobjects("FromImage").object.picture 

또는

frm1.Controls("toImage").picture = Sheet1.oleobjects("FromImage").object.picture 

그러나

, 내가 삽입 된 그림 (Shape 객체)를 사용하여 동일한 작업을 수행 할 때 아래가 작동하지 않습니다;

frm1.toImage.picture = sheet1.shape("FromImage").picture 

.. 유효한 구문이 아닙니다. 내가 그들과 함께 할 수있는 유일한 일은 복사하는 것입니다. 클립 보드를 사용하지 않고 다른 대상의 그림을 설정하는 데 사용할 수 없었습니다.

위의 솔루션은 사진 대신 일련의 activeX 이미지 객체를 사용하여 작동합니다.하지만 표준 이미지 (모양)를 사용하여 할 수없는 이유가 궁금합니다.

+0

시트에 포함 된 이미지를 양식에로드하거나 그 반대로로드 하시겠습니까? 어떻게 이미지가 파일 시스템에서 ... 형식으로 들어 옵니까? – MikeD

+0

MikeD; 둘 다 (시트 - 투 - 폼과 폼 - 투 - 시트) - 이것은 시트 단위 일 수 있지만). 모든 그림이 파일 시스템에서 임베드됩니다. 나는 좀 더 많은 정보를 가지고 질문을 업데이트했다.이 경우에 작동하는 해결 방법을 찾으려고 노력했다. 내 질문은 이제 내가 컨트롤로 할 수있는 그림 (모양) 오브젝트로 작업을 수행 할 수없는 이유를 더 목표로한다고 생각합니다. – Surferosa

답변

0

이 같은 엑셀 시트를 사용 무언가에 사진을 추가하려면 :
(당신은 당신의 마음에 드는 시트 ActiveSheet을 변경할 수 있습니다)

Dim aSheet As Worksheet 
Dim aShape As Shape 
Set aSheet = ActiveSheet 
Set aShape = aSheet.Shapes.AddPicture("<FileName>", msoFalse, msoTrue, 120, 120, 200, 200) 

그리고 자세한 내용은 :

함수 AddPicture (파일 이름 As String, LinkToFile MsoTriState, SaveWithDocument 같이 MsoTriState, 왼쪽으로 단일, 위쪽으로 단일, 너비를 단일, 높이를 단일 같이) 셰이프

모양으로 기능 AddPicture2 (MsoTriState, 왼쪽으로 싱글, 탑으로 싱글, 싱글로서 폭, MsoPictureCompress으로 단일, 압축으로 높이로 문자열, MsoTriState으로 LinkToFile, SaveWithDocument으로 파일 이름)


그리고 당신은 당신의 양식에 Image 구성 요소에 그림을로드하려면 :
은 (양식에 Image 구성 요소를 추가 [: 이미지 1])

Set Image1.Picture = LoadPicture("<FileName>") 
관련 문제