title: Display an image in a userform at native resolution, and label that image
body: <p>So I'm trying to display an image in a userform, at its native resolution. </p>
  
  <p>I'm using 64 bit Excel to do this.</p>
  
  <p>I have about 300 images, and they are all standard sizes, (640x480 - 1024x768 etc.) I want to display one of these images at its native resolution, so I have done this:</p>
  
  <pre><code>Image1.Picture = LoadPicture(Image_Load)
  Image1.PictureAlignment = fmPictureAlignmentTopLeft
  Image1.PictureSizeMode = fmPictureSizeModeClip
  </code></pre>
  
  <p>(Where <code>Image1</code> is an <code>MSForms.Image</code> object)</p>
  
  <p>I need to label these images with about 5-30 labels (different for each image), and I know exactly which pixels I want to position the top left of each of these labels on, but you can't do anything with pixels in VBA it would seem.</p>
  
  <p>So, I have tried, (Where <code>px</code> is the input pixel value):</p>
  
  <p><code>Px / ActiveWindow.PointsToScreenPixelsX(1)</code> - This returns a value of 29.63 for an input of 800 pixels, which is pretty much 40 pixels. It returns 2.26 for an input of 600 using the <code>Y</code> function (This is about 3 pixels).</p>
  
  <p><code>Private Declare Function GetSystemMetrics32 Lib "user32" Alias "GetSystemMetrics"</code> ... This goes on for some time. I can't use this with 64-bit office.</p>
  
  <p><code>TwipsPerPixelX()</code> This function only exits in 32-bit office.</p>
  
  <p><code>Application.PixelsToPoints</code> This function only exists in every other office application. Not Excel.</p>
  
  <p>So, to summarise, how do I place labels at pixel coordinates on a form image?</p>
  
  <p>Any ideas you guys have would be a massive help.</p>