2017-09-18 26 views
6

मैंने अभी कुछ वीबीए समाप्त कर दिया है और मैं सोच रहा था कि Excel पर कुछ मैक्रोज़ छिपाने का कोई तरीका है या नहीं।क्या एक्सेल में मैक्रोज़ को छिपाने का कोई तरीका है?

मुझे उपयोगकर्ता को एक निश्चित मैक्रो चलाने के लिए और केवल एक ही चाहिए, लेकिन यह एक्सेल में सभी उप मैक्रोज़ दिखाता है। मैं उपयोगकर्ता से अनावश्यक मैक्रोज़ को छिपाना चाहता हूं ताकि उपयोगकर्ता गलती से गलत पर क्लिक न करे।

+1

तो शीट पर एक बटन डालें और मैक्रो को इसके साथ जोड़ दें और उपयोगकर्ताओं को बटन दबाएं। – Sorceri

+0

एक दृश्यमान बटन बनाना निश्चित रूप से अच्छा इंटरफेसिंग है। आप उपयोग सलाह और प्रतिबंधों के आस-पास कुछ पाठ भी लिख सकते हैं। – Joffan

उत्तर

13

आप मैक्रोज़ को अलग मॉड्यूल में छिपाने और कोड से पहले मॉड्यूल के शीर्ष पर विकल्प निजी मॉड्यूल का उपयोग करके ऐसा भी कर सकते हैं। मैक्रोज़ अभी भी आपके प्रोजेक्ट पर उपलब्ध होंगे लेकिन मैक्रोज़ बटन पर क्लिक करते समय उपयोगकर्ता द्वारा देखे गए मैक्रोज़ में दिखाई नहीं देंगे।

+1

आकर्षण की तरह काम किया। धन्यवाद! – DaBeau96

+1

@ स्कॉटक्रैनर आह, अच्छा बिंदु! बहुत यकीन है कि यह एक डुप्ली भी है (लेकिन मैं इसे खोदने के लिए बहुत आलसी हूं) –

+0

@ Mat'sMug अब यह है। –

4

आप या तो मैक्रो चलाने के लिए रिबन में एक बटन बना सकते हैं, या आप वीबीए संपादक में प्रत्येक "सब" से पहले "निजी" जोड़ सकते हैं, जिसे आप आसानी से एक्सेस नहीं करना चाहते हैं।

+2

... निश्चित रूप से उपयोगकर्ता को दिखाई देने वाले को छोड़कर सभी को 'निजी' जोड़ें। – Joffan

1

(Alt + F8) डेवलपर से कुछ उप-प्रक्रियाओं (यानी 'मैक्रोज़') को 'छिपाने' के लिए, मैक्रोज़ संवाद एक वैकल्पिक गैर-संस्करण पैरामीटर का उपयोग करता है जिसका अर्थ कुछ भी नहीं है।

Sub meh(Optional w As Worksheet) 
    Debug.Print "hello world" 
End Sub 

meh मैक्रो मैक्रो को चलाने के लिए की सूची में दिखाई नहीं देंगे। यदि आप पैरामीटर को संस्करण के रूप में मंद करते हैं तो यह सूची में दिखाया जाएगा। यह संभावित रूप से एक वैकल्पिक संस्करण पैरामीटर के कारण IsMissing फ़ंक्शन का उपयोग करने में सक्षम है। यह वी 5 ई के साथ एफ 5 के साथ या एफ 8 के साथ कदम से चलाने में सक्षम नहीं होगा।

test उप प्रक्रिया कोड को सही ढंग से चलाएगी।

Sub test() 
    meh 
End Sub 

Sub meh(Optional w As Worksheet) 
    Debug.Print "hello world" 
End Sub 
+0

क्या ... ताकि आप इसे डेवलपर स्क्रीन से भी नहीं चला सकें? दिलचस्प – dwirony

+0

स्क्रीन, ...? अच्छा नहीं, आप इसे डेवलपर, कोड, मैक्रोज़ डायलॉग (शॉर्टकट Alt + F8) में नहीं देख सकते हैं, लेकिन आप इसे डेवलपर, कोड, विजुअल बेसिक के साथ मॉड्यूल शीट में देख सकते हैं। यही कारण है कि मैंने 'विषयपरक' और 'शाब्दिक' नहीं कहा। बोलने के लिए पूर्ण के बजाय सापेक्ष। – Jeeped

+0

@ ड्विरनी - 'कोर्स बेहतर तरीका शायद एक बटन का उपयोग कर रहा है और वीबीए प्रोजेक्ट को पास कर रहा है, लेकिन अगर ऐसा करने में अनिच्छुक है तो इसे इस विधि का उपयोग करके prying आंखों से दूर रखना एक विकल्प है। – Jeeped

संबंधित मुद्दे