エクセルVBAで2つの画像を比較したい
こんにちは。VBAの初心者です。
エクセル2003のVBAを使って、シートに読み込んだ縦横24ピクセルの2つの画像(picA、picB)を比較したいと考えています。VBなどのページを参考に、APIのGetPixel関数を使えばなんとかなりそうだというところまではたどり着いて、以下のコードを組んでみたのですが、うまく動きません。
Private Declare Function GetPixel Lib "gdi32" _
(ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Private Sub CommandButton1_Click()
Dim picA As Image
Dim picB As Image
Dim p1 As Integer
Dim p2 As Integer
Dim ScreenhDC As Long
For x = 1 To 24
For y = 1 To 24
p1 = picA.GetPixel(ScreenhDC, x, y)
p2 = picB.GetPixel(ScreenhDC, x, y)
If p1 <> p2 Then
MsgBox "違う画像です"
Exit Sub
End If
Next
Next
MsgBox "同じ画像です"
End Sub
「p1 = picA.GetPixel(ScreenhDC, x, y)」のところで「実行時エラー'91': オブジェクト変数またはWithブロック変数が設定されていません。」というメッセージが出て止まってしまいます。解決法をご教示いただけませんでしょうか。
そもそもエクセルのVBAではAPIは使えないなどということはありますか?
お礼
ありがとうございます。 歳のせいかUnionなんてコードをすっかり忘れていました。 Sub test03() Dim x As Long, y As Long x = 10 y = 13 Union(Rows(x), Rows(y)).Select End Sub で目的を達成出来ました。