[VBA ] 系統判斷正負值的問題。

看板Visual_Basic作者 (~ 問 號 ~)時間6年前 (2018/12/12 10:49), 6年前編輯推噓1(105)
留言6則, 3人參與, 6年前最新討論串1/1
大家好, 有個問題請教。 我現在目的是要讀取一張圖片, 將相對應位置像素的顏色填入excel工作表內。 在網路上尋找一些方法,但是我卡在了分別讀取像素rgb的部份。 **問題說明** 我要的就是將像素的RGB分別取值到ColorR,ColorG,ColorB, 理論上應該都會獲得一個0-255的數字, 但是在最初使用".Item(PixelX)"取值的時候, '下列程式中*** B ***部分 系統都判斷此數值為一個負數。之後取ColorR,ColorG,ColorB也得到了負數。 我google之後判斷應該是unsinged的問題, 問題1.嘗試要宣告ColorR為 ULONG系統會提示未定義 問題2.我查過vb有移位字元<<跟>> ,為什麼我使用也是提示錯誤, 被迫我只能用除法解決? 有勞版友解答了,謝謝。 --------- 以下是程式 ---------- Dim ImageFile As WIA.ImageFile Dim Vector As WIA.Vector Dim PixelX As Long Dim Pixel As Long Dim ColorR As Integer Dim ColorG As Integer Dim ColorB As Integer Set ImageFile = New WIA.ImageFile With ImageFile .LoadFile "c:\op.bmp" Set Vector = .ARGBData End With If 1 Then End If With Vector For PixelX = 1 To .count'*** B *** ColorR = (.Item(PixelX) And &HFF0000) / 65536 ColorG = (.Item(PixelX) And &HFF00) / 256 ColorB = .Item(PixelX) And &HFF '...... 填入儲存格顏色 Next End With -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.157.133 ※ 文章網址: https://www.ptt.cc/bbs/Visual_Basic/M.1544582950.A.024.html ※ 編輯: chabear (118.163.157.133), 12/12/2018 11:28:33

12/12 11:31, 6年前 , 1F
需讀檔頭資訊,不是每個都是0-255
12/12 11:31, 1F

12/12 13:16, 6年前 , 2F
我有確定唷,照bit來算,的確只有0-255
12/12 13:16, 2F

12/12 17:38, 6年前 , 3F
VBA沒有shift operator 你只能*2^k或者/2^k
12/12 17:38, 3F

12/12 17:40, 6年前 , 4F
你查哪裡查到的 注意看他是不是.net 沒寫就罵他
12/12 17:40, 4F

12/13 14:12, 6年前 , 5F
我看的是vb XD 請問vba的資訊有類似msdn的東西可以查嗎
12/13 14:12, 5F

12/14 00:22, 6年前 , 6F
你看VB要注意是VBA或VB6的 現在講到VB都是.NET
12/14 00:22, 6F
文章代碼(AID): #1S47Sc0a (Visual_Basic)
文章代碼(AID): #1S47Sc0a (Visual_Basic)