Option ExplicitSub LoadImageIntoExcel() Me.Activate Dim strFileName As String Dim bmpFileHeader As BITMAPFILEHEADER Dim bmpInfoHeader As BITMAPINFOHEADER Dim ExcelPalette() As PALETTE Dim Palette24 As PALETTE24Bit Dim i As Integer Dim r As Integer, c As Integer Dim dAdjustedWidth As Double Dim Padding As Byte On Error GoTo CloseFile strFileName = Application.GetOpenFilename Open strFileName For Binary As
If bmpInfoHeader.lngWidth Mod 4 > 0 Then dAdjustedWidth = (((Int((bmpInfoHeader.lngWidth * bmpInfoHeader.intBitCount) / 32) + 1) * 4
Next c Next r Else For r = 1 To bmpInfoHeader.lngHeight For c = 1 To dAdjustedWidth If c <= bmpInfoHeader.lngWidth Then Get
Type BITMAPFILEHEADER strFileType As String * 2 lngFileSize As Long bytReserved1 As Integer bytResrved2 As Integer lngBitmapOffset As LongEnd TypeType BITMAPINFOHEADER lngSize As Long lngWidth As Long lngHeight As Long lngPlanes As Integer intBitCount As Integer lngCompression As Long lngSizeImage As Long lngXPelsPerMeter As Long lngYPelsPerMeter As Long lngClrUsed As Long lngClrImportant As LongEnd TypeType PALETTE blue As Byte green As Byte red As Byte reserve As ByteEnd Type Type PALETTE24Bit blue As Byte green As Byte red As ByteEnd Type