सबसे पहले में, अपना समय और इस की समीक्षा करने में सहायता के लिए धन्यवाद ...एक्सेल ऐडइन - खिड़कियों प्रपत्र हमेशा दृश्यमान रखते हुए डब्ल्यू/एक्सेल सब से
मैं एक करने के लिए एक एक्सेल VBA कार्यपुस्तिका को अपग्रेड करने की कोशिश कर रहा हूँ! वीएसओ 2010 का उपयोग कर वीबीएनईटी में वीएसटीओ एक्सेल ऐड-इन। मूल (यानी- वीबीए) संस्करण में मेरे पास एक मॉडलस उपयोगकर्ताफॉर्म (जिसे frmMain
कहा जाता है) है जो शीर्ष पर तैरता है और उपयोगकर्ता तब भी दिखाई देता है जब उपयोगकर्ता एक्सेल एप्लिकेशन में होता है , लेकिन यदि उपयोगकर्ता Excel के बाहर किसी अन्य विंडो पर जाता है तो दिखाई नहीं देता है।
उदाहरण के लिए, एक्सेल के भीतर उपयोगकर्ता किसी वर्कशीट टैब पर क्लिक कर सकता है, किसी सेल का चयन कर सकता है, आदि और उपयोगकर्ताफॉर्म अभी भी दिखाई दे रहा है। यह बिल्कुल ठीक है कि मैं इसे कैसे पसंद करूंगा।
समस्या यह है कि नए वीएसटीओ ऐड-इन में, मुझे विंडोज़ फॉर्म को इस व्यवहार की नकल करने के लिए नहीं मिल सकता है।
मैं frmMain.Show()
का उपयोग बिना प्रणाली का फार्म के रूप में रूप को दिखाने के, लेकिन इस समय उपयोगकर्ता एक एक्सेल वर्कशीट (i.e.- एक वर्कशीट को सक्रिय करता है) प्रपत्र कार्यपत्रक के पीछे छिप जाता क्लिक करता है।
मैं फ़ॉर्म को वापस देखने के लिए मैन्युअल रूप से Alt-Tab कर सकता हूं, लेकिन मुझे हमेशा यह देखने की आवश्यकता है - एक्सेल वर्कशीट के शीर्ष पर तैरते हुए जब तक उपयोगकर्ता ने एक्सेल एप्लिकेशन नहीं छोड़ा है।
मैंने TopMost
पर फॉर्म सेट करने सहित विभिन्न चीजों की कोशिश की, हालांकि, यह फॉर्म हर जगह TopMost
होने का कारण बनता है - एक्सेल के बाहर भी। इससे भी बदतर, यदि उपयोगकर्ता कुछ भी करता है जो आमतौर पर एक्सेल के एक संवाद बॉक्स को लॉन्च करता है (उदाहरण के लिए- एक खुली कार्यपुस्तिका को बंद करना, चेतावनी उठाना "क्या आप परिवर्तनों को सहेजना चाहते हैं ...") अलर्ट संवाद बॉक्स स्वयं frmMain
फॉर्म (के पीछे frmMain
TopMost
) के पीछे छिपा हुआ और पहुंच योग्य नहीं है।
वांछित तरीके से व्यवहार करने के लिए मैं अपना फॉर्म कैसे प्राप्त कर सकता हूं (यानी- वीबीए में वही तरीका)?
धन्यवाद !!!
रोब