Código de macro para verificar se um arquivo já está aberto

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 291295
Para uma versão deste artigo do Microsoft Excel 2000, consulte 213383.
Para obter um Microsoft Excel 98 e versões anteriores do Excel versão deste artigo, consulte 138621.
Sumário
Quando você usa um arquivo compartilhado em uma rede, você pode freqüentemente ache útil saber se outro usuário tem o arquivo aberto. O seguinte Microsoft Visual Basic for Applications procedimento é um exemplo de um método para determinar se outro usuário possui um determinado arquivo aberto.
Mais Informações
Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita. Isso inclui, mas não está limitado a, garantias implícitas de comercialização ou adequação para uma finalidade específica. Este artigo presume que você está familiarizados com a linguagem de programação que está sendo demonstrada e com as ferramentas que são usadas para criar e depurar procedimentos. Engenheiros de suporte podem ajudar a explicar a funcionalidade de um determinado procedimento, mas eles não modificarão esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender às suas necessidades.

Código de macro de exemplo

Se um determinado arquivo já não estiver aberto, a macro a seguir também abre-lo. Se o arquivo não estiver no local que você especificou, você receber a seguinte mensagem de erro:
Arquivo não encontrado.
Para criar um procedimento do Visual Basic para se Pasta2.xls ou Book2.xlss na unidade C já está aberta, siga estas etapas.

Observação No Microsoft Excel 2007, você precisará alterar Pasta2.xls para Book2.xlss no código a seguir.
  1. Inicie o Excel e, em seguida, pressione ALT+F11 para abrir o Visual Basic para aplicativos.
  2. No Visual Basic, clique em módulo no menu Inserir .
  3. Digite o seguinte código na folha de módulo.
    Sub TestFileOpened()    ' Test to see if the file is open.    If IsFileOpen("c:\Book2.xls") Then        ' Display a message stating the file in use.        MsgBox "File already in use!"        '        ' Add code here to handle case where file is open by another        ' user.        '    Else        ' Display a message stating the file is not in use.        MsgBox "File not in use!"        ' Open the file in Microsoft Excel.        Workbooks.Open "c:\Book2.xls"        '        ' Add code here to handle case where file is NOT open by another        ' user.        '    End IfEnd Sub' This function checks to see if a file is open or not. If the file is' already open, it returns True. If the file is not open, it returns' False. Otherwise, a run-time error occurs because there is' some other problem accessing the file.Function IsFileOpen(filename As String)    Dim filenum As Integer, errnum As Integer    On Error Resume Next   ' Turn error checking off.    filenum = FreeFile()   ' Get a free file number.    ' Attempt to open the file and lock it.    Open filename For Input Lock Read As #filenum    Close filenum          ' Close the file.    errnum = Err           ' Save the error number that occurred.    On Error GoTo 0        ' Turn error checking back on.    ' Check to see which error occurred.    Select Case errnum        ' No error occurred.        ' File is NOT already open by another user.        Case 0         IsFileOpen = False        ' Error number for "Permission Denied."        ' File is already opened by another user.        Case 70            IsFileOpen = True        ' Another error occurred.        Case Else            Error errnum    End SelectEnd Function					
Referências
Para obter mais informações sobre como usar o código de exemplo neste artigo, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
290140Como executar o código de exemplo para programas do Office XP a partir de artigos da Base de dados de Conhecimento
inf XL2002 XL2003 XL2007

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 291295 - Última Revisão: 01/31/2007 19:09:19 - Revisão: 3.4

Microsoft Office Excel 2007, Microsoft Office Excel 2003, Microsoft Excel 2002 Standard Edition

  • kbmt kbdtacode kbhowto kbprogramming KB291295 KbMtpt
Comentários