• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

foutmelding bij declare function

  • Onderwerp starter Onderwerp starter tkint
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

tkint

Gebruiker
Lid geworden
5 dec 2011
Berichten
776
Een vriend van mij heeft een tool ontwikkeld om nummers te trekken bij het kien-spel. Hij heeft een 64-bits computer aangeschaft en de VBA-editor herkent onderstaande code niet.
Code:
Declare Function PlaySound Lib "winmm.dll" _
  Alias "PlaySoundA" (ByVal lpszName As String, _
  ByVal hModule As Long, ByVal dwFlags As Long) As Long

Ik heb de tool uitgeprobeerd in de Excel 2016-versie en daar loopt de code feilloos.

Heeft iemand een idee wat er fout is aan de code?
 

Bijlagen

  • excel fout melding.PNG
    excel fout melding.PNG
    55,2 KB · Weergaven: 53
Het is dan kennelijk ook een 64-bit Office installatie.
Wijzig het dan in dit om zowel Office 32- als 64-bit te ondersteunen:
Code:
#If Win64 Then
    Private Declare PtrSafe Function PlaySound Lib "winmm.dll" _
        Alias "PlaySoundA" (ByVal lpszName As String, _
        ByVal hModule As LongPtr, ByVal dwFlags As Long) As Boolean
#Else
    Private Declare Function PlaySound Lib "winmm.dll" _
        Alias "PlaySoundA" (ByVal lpszName As String, _
        ByVal hModule As Long, ByVal dwFlags As Long) As Boolean
#End If
 
Laatst bewerkt:
Beste,

De bestaande code vervangen door de aangereikte code? Ik speel deze informatie door en houd je op de hoogte. Bedankt.
 
@Edmoor,

De ontwikkelaar krijgt met een aangereikte code opnieuw een foutwaarschuwing. Hij werkt met Excel 10. Voor de niet herkende code door VBA, zie schermafbeelding.
 

Bijlagen

  • foutmelding.PNG
    foutmelding.PNG
    15,1 KB · Weergaven: 45
Dat is geen fout maar gewoon zoals het hoort.
In de 64-bit editie van Office zal de voor de 32-bit bedoelde code inderdaad rood zijn.
Wat je ziet in dat plaatje klopt dus.

PS:
Excel 10 bestaat niet.
 
Ok, het is rood, maar is het echt een fout? doet de code het echt niet of is het een waarschuwing?
Bij mijn 32bits systeem wordt de regel met "PtrSafe" rood, maar de code doet het toch.
 
Precies, omdat dan de andere declatie wordt gebruikt.
Die #If Win64 Then is een Compiler Directive die bepaalt welke moet worden gebruikt.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan