Avatar billede k_hornuff Nybegynder
02. juli 2007 - 16:37 Der er 2 kommentarer og
1 løsning

Proble med IsOpen funktion

Hej

jeg har lavet følgende funktion:

Public Function FileIsOpen(FilePath As String) As Boolean

' returns True if FullFileName currently is in use by another process

Dim f As Integer
f = FreeFile
On Error Resume Next
Open FilePath For Binary Access Read Write Lock Read Write As #f
Close #f
' If an error occurs, the document is currently open.
If Err.Number <> 0 Then
  FileIsOpen = True
  Err.Clear
Else
  FileIsOpen = False
End If
On Error GoTo 0
   
End Function

Jeg bruger funktionen i forbindelse med et VBA modul, der kopierer forskellige ting over i PowerPoint.

Den del af mit modul som giver et problem er:

' Get a reference to the PowerPoint Application object.
Set PPApp = CreateObject("PowerPoint.Application")
' Display the application.
PPApp.Visible = True
' Open a specific presentation.
If smeFileIsOpen(NameOfExistingPPApp) = False Then
    PPApp.Presentations.Open (NameOfExistingPPApp)
End If

Ideen med ovenstående kode er at en bestemt PowerPointapplikation skal åbnes, hvis den ikke allerede er åben. Desværre virker det ikke, da min funktion også returnerer "True", hvis den PowerPointapplikation jeg vil åbne, er blevet åben på en anden computer.

Mit spørgsmål er derfor, hvordan man får ovenstående funktion til kun at returnere "true", hvis PowerPointapplikation er åbn på min computer
Avatar billede kabbak Professor
02. juli 2007 - 16:42 #1
If smeFileIsOpen(NameOfExistingPPApp) = False Then
    PPApp.Presentations.Open (NameOfExistingPPApp)
End If

skal være
If FileIsOpen(NameOfExistingPPApp) = False Then
    PPApp.Presentations.Open (NameOfExistingPPApp)
End If

NameOfExistingPPApp

skal erstattes af sti og filnavn

eksempel:
"C:\data\minfil.ppt"
Avatar billede k_hornuff Nybegynder
03. juli 2007 - 20:49 #2
Ok, jeg fik vist ikke forklarer mig godt nok i ovenstående.

NameOfExistingPPApp er allerede lig med en sti og et filnavn.

Problemet er, at den fil jeg ønsker at arbejde med ligger på en fælles server. Derfor kan jeg risikere, at en anden har åbnet filen på hans computer.
Hvis en anden har filen åben, opstår der en fejl i funktionen FileIsOpen.
Fejlen opståer i linien:
“Open FilePath For Binary Access Read Write Lock Read Write As #f”
men jeg ved ikke hvad jeg skal skrive i stedet!

Beklager at jeg har oprettet spørgsmålet to steder. Hvor står der noget om hvordan man lukker et spørgsmål igen?
Avatar billede k_hornuff Nybegynder
13. juli 2007 - 11:46 #3
jeg lukker tråden
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester