ULTIMOS ARQUIVOS ACESSADOS
Alguem poderia indicar ou fornecer uma rotina que me dê os últimos arquivos abertos pelo programa do tipo menu do excel opção arquivo
1 c:\arquivos de programas\excel.xls
2 c:\...
Grato
Mauricio
1 c:\arquivos de programas\excel.xls
2 c:\...
Grato
Mauricio
cara, mal, mas não entendi nada, pode reexplicar?
Seria um atalho.
vc poderá utilizar o atalho para re-abrir os ultimos arquivos que foram abertos anteriormente.
Grato
Mauricio
vc poderá utilizar o atalho para re-abrir os ultimos arquivos que foram abertos anteriormente.
Grato
Mauricio
vai em menu editor, e crie um menu assim:
Arquivo (Name = mnuArquivo)
---Abrir (Name = mnuAbrir)
---Lista MRU (Name = mnuMRU, Visible = False, Index = 0)
---Sair (Name = mnuSair)
em project\componts, vc marca isso:
Microsoft Common Dialog control
Depois cole isso no form1
Option Explicit
Private Const MaxMRU = 4 'Número máximo de MRUs na lista (-1 para sem limite)
Private Const NaoEncontrado = -1 'Indica que uma entrada duplicada não foi encontrada
Private Const SemMRUs = -1 'Indica que nenhum MRUs está criado
Private MRUCount As Long 'Mantém uma contagem de MRUs criados
Private Sub Form_Load()
' Inicializa o contador de MRUs
MRUCount = SemMRUs
' Chama sub para retornar os nomes de arquivos MRU
GetMRUFileList
End Sub
Private Sub Form_Unload(Cancel As Integer)
' Chama sub para salvar nomes de arquivos MRU
SaveMRUFileList
End Sub
Private Sub mnuMRU_Click(Index As Integer)
' Chama sub para reordenar a lista de MRUs
ReorderMRUList mnuMRU(Index).Caption, CLng(Index)
End Sub
Private Sub mnuAbrir_Click()
' Mostra o diálog de abertura de arquivo
Me.CommonDialog1.ShowOpen
' Chana sub para adicionar este arquivo ao MRU
AddMRUItem Me.CommonDialog1.FileName
End Sub
Private Sub AddMRUItem(NewItem As String)
Dim result As Long
' Cham sub para checar por duplicidades
result = CheckForDuplicateMRU(NewItem)
' Trata caso em que é encontrada duplicidade
If result <> NaoEncontrado Then
' Chama sub para reordenar a lista MRU
ReorderMRUList NewItem, result
Else
' Chama sub para adicionar novo item ao menu MRU
AddMenuElement NewItem
End If
End Sub
Private Function CheckForDuplicateMRU(ByVal NewItem As String) As Long
Dim i As Long
' Muda NewItem para caixa alta para fazer comparação
NewItem = UCase$(NewItem)
' Checa todos os MRUs existentes em busca de duplicidade
For i = 0 To MRUCount
If UCase$(Me.mnuMRU(i).Caption) = NewItem Then
' Duplicação encontrada, retorna a localização da duplicação
CheckForDuplicateMRU = i
' Para pesquisa
Exit Function
End If
Next i
' Nenhum duplicado foi encontrado, retorna -1
CheckForDuplicateMRU = -1
End Function
Private Sub mnuSair_Click()
' Fecha o programa
Unload Me
End Sub
Private Sub AddMenuElement(NewItem As String)
Dim i As Long
' Verifica que não vamos exceder o máximo de MRUs
If (MRUCount < (MaxMRU - 1)) Or (MaxMRU = -1) Then
'Incrementa o contador de menus
MRUCount = MRUCount + 1
'Verifica se este é o primeiro item
If MRUCount <> 0 Then
' Adiciona um novo elemento ao menu
Load mnuMRU(MRUCount)
End If
' Torna o novo elemento visÃvel
mnuMRU(MRUCount).Visible = True
End If
' Move itens para manter ordem do mais recente para o menos recente
For i = (MRUCount) To 1 Step -1
' Ajusta os captions
mnuMRU(i).Caption = mnuMRU(i - 1).Caption
Next i
' Atribui caption para o novo item
mnuMRU(0).Caption = NewItem
End Sub
Private Sub ReorderMRUList(MRUDuplicado As String, LocalDoDuplicado As Long)
Dim i As Long
' Move entradas previamente "mais recentes" que o
' duplicado uma posição abaixo na lista de MRU
For i = LocalDoDuplicado To 1 Step -1
mnuMRU(i).Caption = mnuMRU(i - 1).Caption
Next i
' Atribui caption do novo item
mnuMRU(0).Caption = MRUDuplicado
End Sub
Private Sub GetMRUFileList()
Dim i As Long 'variável de controle de loop
Dim result As String 'Nome do MRU do registry
' Loop por todas as entradas
Do
' Pega entrada do registro
result = GetSetting(App.Title, "ArquivosMRU", Trim$(CStr(i)), "")
' Verifica se foi retornado um valor
If result <> "" Then
' Chama sub que adiciona item à  lista MRU
AddMRUItem result
End If
' Incrementa contador
i = i + 1
Loop Until (result = "")
End Sub
Private Sub SaveMRUFileList()
Dim i As Long ' variável de controle de loop
' Loop por todos MRUs
For i = 0 To MRUCount
' Grava MRU no registro com argumento Key igual à  sua posição na lista
SaveSetting App.Title, "ArquivosMRU", Trim$(CStr(i)), mnuMRU(i).Caption
Next i
End Sub
Arquivo (Name = mnuArquivo)
---Abrir (Name = mnuAbrir)
---Lista MRU (Name = mnuMRU, Visible = False, Index = 0)
---Sair (Name = mnuSair)
em project\componts, vc marca isso:
Microsoft Common Dialog control
Depois cole isso no form1
Option Explicit
Private Const MaxMRU = 4 'Número máximo de MRUs na lista (-1 para sem limite)
Private Const NaoEncontrado = -1 'Indica que uma entrada duplicada não foi encontrada
Private Const SemMRUs = -1 'Indica que nenhum MRUs está criado
Private MRUCount As Long 'Mantém uma contagem de MRUs criados
Private Sub Form_Load()
' Inicializa o contador de MRUs
MRUCount = SemMRUs
' Chama sub para retornar os nomes de arquivos MRU
GetMRUFileList
End Sub
Private Sub Form_Unload(Cancel As Integer)
' Chama sub para salvar nomes de arquivos MRU
SaveMRUFileList
End Sub
Private Sub mnuMRU_Click(Index As Integer)
' Chama sub para reordenar a lista de MRUs
ReorderMRUList mnuMRU(Index).Caption, CLng(Index)
End Sub
Private Sub mnuAbrir_Click()
' Mostra o diálog de abertura de arquivo
Me.CommonDialog1.ShowOpen
' Chana sub para adicionar este arquivo ao MRU
AddMRUItem Me.CommonDialog1.FileName
End Sub
Private Sub AddMRUItem(NewItem As String)
Dim result As Long
' Cham sub para checar por duplicidades
result = CheckForDuplicateMRU(NewItem)
' Trata caso em que é encontrada duplicidade
If result <> NaoEncontrado Then
' Chama sub para reordenar a lista MRU
ReorderMRUList NewItem, result
Else
' Chama sub para adicionar novo item ao menu MRU
AddMenuElement NewItem
End If
End Sub
Private Function CheckForDuplicateMRU(ByVal NewItem As String) As Long
Dim i As Long
' Muda NewItem para caixa alta para fazer comparação
NewItem = UCase$(NewItem)
' Checa todos os MRUs existentes em busca de duplicidade
For i = 0 To MRUCount
If UCase$(Me.mnuMRU(i).Caption) = NewItem Then
' Duplicação encontrada, retorna a localização da duplicação
CheckForDuplicateMRU = i
' Para pesquisa
Exit Function
End If
Next i
' Nenhum duplicado foi encontrado, retorna -1
CheckForDuplicateMRU = -1
End Function
Private Sub mnuSair_Click()
' Fecha o programa
Unload Me
End Sub
Private Sub AddMenuElement(NewItem As String)
Dim i As Long
' Verifica que não vamos exceder o máximo de MRUs
If (MRUCount < (MaxMRU - 1)) Or (MaxMRU = -1) Then
'Incrementa o contador de menus
MRUCount = MRUCount + 1
'Verifica se este é o primeiro item
If MRUCount <> 0 Then
' Adiciona um novo elemento ao menu
Load mnuMRU(MRUCount)
End If
' Torna o novo elemento visÃvel
mnuMRU(MRUCount).Visible = True
End If
' Move itens para manter ordem do mais recente para o menos recente
For i = (MRUCount) To 1 Step -1
' Ajusta os captions
mnuMRU(i).Caption = mnuMRU(i - 1).Caption
Next i
' Atribui caption para o novo item
mnuMRU(0).Caption = NewItem
End Sub
Private Sub ReorderMRUList(MRUDuplicado As String, LocalDoDuplicado As Long)
Dim i As Long
' Move entradas previamente "mais recentes" que o
' duplicado uma posição abaixo na lista de MRU
For i = LocalDoDuplicado To 1 Step -1
mnuMRU(i).Caption = mnuMRU(i - 1).Caption
Next i
' Atribui caption do novo item
mnuMRU(0).Caption = MRUDuplicado
End Sub
Private Sub GetMRUFileList()
Dim i As Long 'variável de controle de loop
Dim result As String 'Nome do MRU do registry
' Loop por todas as entradas
Do
' Pega entrada do registro
result = GetSetting(App.Title, "ArquivosMRU", Trim$(CStr(i)), "")
' Verifica se foi retornado um valor
If result <> "" Then
' Chama sub que adiciona item à  lista MRU
AddMRUItem result
End If
' Incrementa contador
i = i + 1
Loop Until (result = "")
End Sub
Private Sub SaveMRUFileList()
Dim i As Long ' variável de controle de loop
' Loop por todos MRUs
For i = 0 To MRUCount
' Grava MRU no registro com argumento Key igual à  sua posição na lista
SaveSetting App.Title, "ArquivosMRU", Trim$(CStr(i)), mnuMRU(i).Caption
Next i
End Sub
Ah, esqueci de comentar, esse código foi retirado de:
http://www.vbmania.com.br/vbmdetail.php?varID=531&TxtSearch=recentes&CmbSort=&varPagina=1
http://www.vbmania.com.br/vbmdetail.php?varID=531&TxtSearch=recentes&CmbSort=&varPagina=1
Tópico encerrado , respostas não são mais permitidas