VBA: एक्सेल वर्कशीट या UserForm में Hdc ढूँढना

कार्यपत्रक में Hdc को खोजने के दो छोटे उदाहरण इस प्रकार हैं:

  • Sheet1 पर क्लिक करके UserForm प्रदर्शित होता है।
  • यूएफ पर पॉइंटर लगाएं, बाईं माउस बटन को नीचे रखें और माउस को खींचें।
  • यूएफ उप को बंद करके जारी रहता है और शीट पर एक चाप खींचता है।

शुरू करना

  • एक नई कार्यपुस्तिका
  • कोई UserForm नाम = UserForm1 जोड़ें

निम्नलिखित कोड को शीट 1 में पेस्ट करें:

 निजी डिक्लेयर फंक्शन आर्क लिब "gdi32" (बायवाल एचडीसी लॉन्ग, बायवाल एक्स 1 जितना लंबा, बायल वाई 1 जितना लंबा, बाइवाल एक्स 2 जितना लंबा, बाइवाल वाई 2 जितना लंबा,

लंबे समय तक बीवीएल एक्स 3, लंबे समय तक बायल वाई 3, लंबे समय तक बायल एक्स 3, लंबे समय तक बायल वाई 3।

निजी डिक्लेयर फंक्शन आर्कटो लिब "gdi32" (बायवैल एचडीसी लॉन्ग, बायवाल एक्स 1 लॉन्ग, बाइवाल वाई 1 जितना लंबा, बाइवाल एक्स 2 जितना लंबा, बाइवाल वाई 2 जितना लंबा,

लंबे समय तक बीवीएल एक्स 3, लंबे समय तक बायल वाई 3, लंबे समय तक बायल एक्स 3, लंबे समय तक बायल वाई 3।

निजी सब वर्कशीट_सेलेक्शन चेंज (रेंज के रूप में बायल टारगेट)

डिम बी अस लॉन्ग

'एक यूसी को सक्रिय करें और उस पर आकर्षित करें (अपना एचडीसी खोजें)

UserForm1.Show

'एक्सेल वर्कशीट में अपना एचडीसी ढूँढना

मुदित = ०

करो जबकि Myhdc = ०

myhdc = GetForegroundWindow ()

बी = मिथक

myhdc = GetDC (myhdc)

लूप

'सीधे वर्कशीट पर ड्रा करें

बी = आर्क (myhdc, 120, 500, 320, 400, 320, 400, 780, 500)

अंत उप

उपयोगकर्ता मॉड्यूल में

निम्नलिखित कोड चिपकाएँ:

 निजी प्रकार POINTAPI

लंबे समय के रूप में एक्स

वाई अस लॉन्ग

अंत प्रकार

निजी घोषणा फंक्शन DeleteObject Lib "gdi32" (लंबे समय तक ByVal hObject)

निजी घोषणा फंक्शन SelectObject Lib "gdi32" (ByVal HDc लॉन्ग, ByVal hObject लॉन्ग)

निजी घोषणा समारोह GetForegroundWindow Lib "user32" () लंबे समय के रूप में

निजी घोषणा समारोह CreatePen Lib "gdi32" (लंबे समय तक byVal nPenStyle, लंबे समय तक byVal nWidth, लंबे समय तक ByVal crColor)

प्राइवेट डिक्लेयर फंक्शन लाइनटॉ लिब "gdi32" (बायवैल एचडीसी लॉन्ग, बायल एक्स एक्स लॉन्ग, बाइवाल वाई अस लॉन्ग) जितना लंबा

निजी घोषणा समारोह MoveToEx Lib "gdi32" (ByVal HDc लॉन्ग, _

ByVal X Long के रूप में, ByVal Y As Long, lpPoint as Any) As Long

निजी डिक्लेयर फंक्शन गेटीडीसी लिब "उपयोगकर्ता 32" (ब्यवैल ह्वैंड अस लॉन्ग) ऐज़ लॉन्ग

निजी डिक्लेयर फंक्शन सेटपिक्सलवी लिब "gdi32" (बायवैल एचडीसी लॉन्ग, बायल एक्स एक्स लॉन्ग, बाइवाल वाई अस लॉन्ग, बाइवाल क्रॉक्लॉर लॉन्ग) बाइट के रूप में

लंबे समय तक निजी मोनडेक

बूलियन के रूप में मंद बफ

उपयोगकर्ता

बफ = सच

अंत उप

उपयोगकर्ता

करो जबकि Myhdc = ०

myhdc = GetForegroundWindow ()

myhdc = GetDC (monhdc)

लूप

यदि बटन 1 तो उप से बाहर निकलें

hRPen = CreatePen (PS_SOLID, 10, RGB (0, 255, 0))

DeleteObject SelectObject (myhdc, hRPen)

अगर बफ तो

MoveToEx myhdc, X * 1.32, Y * 1.32, और H0

बफ = गलत

अगर अंत

लाइनटॉ मायहेडक, एक्स * 1.32, वाई * 1.32

DoEvents

अंत उप

पिछला लेख अगला लेख

शीर्ष युक्तियाँ