मैंने फ़ोल्डरपाथ कमांड का उपयोग नहीं किया, ऐसा लगता है कि यह मेरे लिए उपलब्ध नहीं है, इसलिए मैं बाद में जांच नहीं करूंगा क्यों नहीं। नीचे कुछ नमूना कोड है जिन्हें मैंने यह सुनिश्चित करने के लिए परीक्षण किया है कि ओएसएक्स एक्सेल से .sh फ़ाइल चलाने के लिए संभव है।
.sh फ़ाइल मैं परीक्षण के लिए इस्तेमाल किया मेरे डेस्कटॉप पर रखा गया था और केवल निम्न पंक्ति में शामिल हैं: "खुला /Applications/Calculator.app"
VBA कोड पर OSX है एक्सेल से .sh आह्वान करने के लिए नीचे:
Dim DesktopFolder As String
DesktopFolder = MacScript("return (path to desktop folder) as string")
Dim ScriptFile As String
ScriptFile = DesktopFolder & "test.sh"
RetVal = Shell(ScriptFile, vbNormalFocus)
मैं अगर जाँच करने का निर्णय लिया इसके केवल कुछ फ़ोल्डरों पर कार्यात्मक तो मैं/tmp फ़ोल्डर में .sh फ़ाइल चले गए और फ़ाइल को कार्यान्वित नहीं कर सकता है, बस हो गया "फ़ाइल नहीं मिला त्रुटि" चाहे कितना मैंने पथ को एन्कोड किया। अंत में एहसास हुआ कि ओएसएक्स पर/tmp फ़ाइल एक प्रतीकात्मक लिंक है जो/private/tmp पर मैप करता है और जब मैंने उस पथ का उपयोग किया तो यह सब ठीक काम करने लगता है।
Dim ScriptFile As String
ScriptFile = "Macintosh HD:private:tmp:test.sh"
RetVal = Shell(ScriptFile, vbNormalFocus)
वैसे भी, उम्मीद है कि यह थोड़ा सा मदद करता है। मैं एक बेहतर तरीके की तलाश जारी रखूंगा, गतिशील रूप से यह पता लगाने के लिए कुछ चाहिए कि फ़ाइल स्थान विश्वसनीय रूप से क्या है।
क्या यह प्रश्न http://stackoverflow.com/questions/6136798/vba-shell-function-in-office-2011-for-mac –
स्थान के बीच "\" char शामिल करने की आवश्यकता नहीं है, लिपि का नाम? सौभाग्य। – shellter
"शैल" कमांड को ':' अलग पथ की आवश्यकता होती है, हालांकि यह समस्या नहीं है। मैंने एक्सेल वर्कबुक के समान निर्देशिका में, मोड 755 के साथ एक बैश खोल फ़ाइल को इंगित करने वाले पूरी तरह से योग्य पथ के साथ एक सरल शेल कॉल की कोशिश की है, और मुझे हमेशा अनुमति अस्वीकार कर दी जाती है। यह एक बहुत ही आसान चीज की तरह लगता है लेकिन मैं इसे काम नहीं कर सकता, या तो। –