title: Excel VBA: Copying Pictures from image controls to activeX objects
body: <p>I have a series of images that I need to display multiple times on both forms (via image controls) and on worksheets (via activeX image controls).  I know that I could keep the files externally and use the <code>loadpicture</code> method; but there is something I want to avoid if possible.</p>
  
  <p>I also know I could save and load- but again I would rather not use an external file write to perform the task. Ideally, everything will stay embedded and hidden within the file itself.</p>
  
  <p>I think there maybe a solution in using the clipboard- but I couldn't get the syntax to work. The object is embedded always in the same location(s); it never moves or changes size or other properties (beyond .visible). So what I would really like to do is something simple like;</p>
  
  <pre><code>Sheet1.oleobjects("toImage").object.picture = frm1.fromImage.picture
  </code></pre>
  
  <p>**Edit: **<br>
  I think I've found a solution to this; but still have a related question.</p>
  
  <p>I worked out that I could do what I want if I embed a series of activeX images on a sheet; then reference them in the actual controls / objects I want.  So;</p>
  
  <pre><code>Sheet1.oleobjects("toImage").object.picture=Sheet1.oleobjects("FromImage").object.picture
  </code></pre>
  
  <p>or </p>
  
  <pre><code>frm1.Controls("toImage").picture = Sheet1.oleobjects("FromImage").object.picture
  </code></pre>
  
  <p>But, the below doesn't work when I try to do the same using an inserted picture (a shape object);</p>
  
  <pre><code>frm1.toImage.picture =  sheet1.shape("FromImage").picture
  </code></pre>
  
  <p>..isn't valid syntax. It seems the only thing I can do with them is copy them- I couldn't use them to set the picture of another object without using the clipboard.</p>
  
  <p>The solution above works for me (using a series of activeX image objects rather than pictures)- but I am curious why I can't do with using a standard picture (shape).</p>