MacScript voor selecteren van een folder geeft een fout

Status
Niet open voor verdere reacties.

Tsjallie

Gebruiker
Lid geworden
20 mrt 2018
Berichten
7
Ik bouw een Excel applicatie voor iemand in de VS.
Onderdeel daarvan is een functie waarmee een folder geselecteerd kan worden. Die functie moet zowel op een Windows PC, als op een Mac werken.
Dat laatste gaat nog niet goed, maar ik heb zelf geen Mac en kan dus niet debuggen.
Wellicht dat iemand met een Mac en kennis van VBA me kan helpen.

OS-versie is MacIntosh (Intel) Version 10.15.2 (Build 19C57)
Excel versie is 16.32.

Ik sluit het workbook bij wat ik gebruik om de functie te debuggen.

Hieronder een screenshot van de debug-informatie uit het Immediate window:
DebugInfo.JPG
Zo te zien zit het probleem in de syntax van het script wat bij het aanroepen van MacScript wordt meegegeven, maar ik zie het niet (meestal een teken dat het om iets heel knulligs gaat :confused:)
 

Bijlagen

  • SelectFolderOnMacOrPC.xlsm
    23,4 KB · Weergaven: 23
Excel moet zowel op een Windows PC, als op een Mac werken.
Excel 2019 voor mac versie 16.32 VBA is niet hetzelfde als Exel voor Windows.
Het is beter dat windows geïnstalleerd word op de mac via Bootcamp en dan Office erop zet. Ja het zijn extra kosten.
 
Hi Daniel162,
heb ook aan iets als Bootcamp zitten denken, maar ik begrijp dat de beoogde gebruikers dermate computer nitwits zijn dat dat geen werkbare optie gaat zijn (men schijnt niet eens een bestandje op te kunnen zoeken en naar de printer sturen):shocked:
Ik denk dat ik maar een workaround ga proberen. Iets met special folder of zo en dan maar geen vrije keuze.
 
Uiteindelijk het probleem toch opgelost.
Mocht iemand hetzelfde probleem hebben, dan hier de oplossing.

Het probleem zit in deze command line:
Code:
ScriptTxt = "return posix path of (choose folder with prompt ""Select the folder""" & _
            " default location alias """ & [B][COLOR="#FF0000"][U]MacFldrPath[/U][/COLOR][/B] & """) as string"
Deze variabele bevatte een Posix path (met een slash als separator), maar MacScript wil een Mac path hebben (met een dubbele punt als separator).
Dus bijvoorbeeld "/users/Tsjallie/" moet worden "Macintosh HD:users:Tsjallie:"

Oplossing is het Posix path te converteren naar een Mac path met de volgende code
Code:
MacHD = MacScript("return (path to startup disk) as string") 'Get the Hard Drive
MacFldrPath = MacHD & Replace(FldrPath, "/", ":") 'Add the HD to the initial folder path and change / to :
MacFldrPath = Replace(MacFldrPath, "::", ":") 'Just in case
            
ScriptTxt = "return posix path of (choose folder with prompt ""Select the folder""" & _
            " default location alias """ & MacFldrPath & """) as string"

Voor de liefhebbers voeg ik een workbook bij met de SelectFolder-functie die zowel op Mac als op PC zou moeten werken.
 

Bijlagen

  • SelectFolderOnMacOrPC.xlsm
    25,4 KB · Weergaven: 19
Werkt dit ook?
Code:
application.PathSeparator
 
Volgens Application.PathSeparator is de separator een slash.
Wellicht dat alleen MacScript een dubbele punt verwacht.
Ik heb zelf geen Mac, dus kan het niet proberen, maar ik verwacht daar wel een deze dagen achter te komen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan