Notifications
Clear all

Incorporar nova fonte ao iniciar Excel

12 Posts
3 Usuários
0 Reactions
1,665 Visualizações
(@fcabral)
Posts: 7
Active Member
Topic starter
 

Pessoal,

preciso de uma ajuda urgente. Sou novo aqui e também novo nos estudos de VBA.

Preciso que meu Excel abra com uma determinada fonte, ou seja, assim que abrir o documento a fonte padrão seja NeoSans.

Acontece que quando o documento for aberto em um PC que não tenha essa fonte, o Excel exibirá outra.

Existe alguma maneira de resolver esse problema?

Obrigado!

 
Postado : 11/02/2014 12:38 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!

Segue caminho:-

Abra o excel -> Botão Office (se for 2007) -> opções do excel -> Mais usados -> Ao Criar novas pastas de Trabalho -> Usar esta fonte: "NeoSans".

Att,

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 11/02/2014 12:55 pm
(@fcabral)
Posts: 7
Active Member
Topic starter
 

Boa tarde!

Segue caminho:-

Abra o excel -> Botão Office (se for 2007) -> opções do excel -> Mais usados -> Ao Criar novas pastas de Trabalho -> Usar esta fonte: "NeoSans".

Att,

Marciel,

Esta opção não resolve meu problema visto que a NeoSans não é uma fonte padrão do windows.
Como a tenho no meu PC, pra mim é tranquilo.

Acontece que quando envio esse arquivo elaborado com NeoSans para alguém que não tem essa fonte, o Excel abre como Arial.
Essa pessoa precisaria instalar a fonte para que ficasse correto.

Não teria como anexar a fonte como objeto da planilha e fazer com que, na hora que um PC iniciar o documento, uma macro qualquer copie/mova a fonte para a pasta do windows?

Teria de ser algo totalmente automatizado.

Agradeço.
Abs.,

 
Postado : 11/02/2014 1:17 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

fcabral,

Então pelo que sei terá que pedir para instalar no painel de controle essa fonte!

Caso haja outra solução, aguarde que nossos amigos do fórum lhe ajudará!!!

Att,

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 11/02/2014 1:33 pm
(@fcabral)
Posts: 7
Active Member
Topic starter
 

fcabral,

Então pelo que sei terá que pedir para instalar no painel de controle essa fonte!

Caso haja outra solução, aguarde que nossos amigos do fórum lhe ajudará!!!

Att,

Copiando ela pra dentro do diretório, a instalação é automática.
Só precisariamos de alguma solução pra automatizar isso.

Vou aguardar a ajuda de mais algum membro!

Agradeço sua colaboração.

Abs.,

 
Postado : 11/02/2014 2:25 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Faça o seguinte:

Coloque o código abaixo em Estapasta_de_Trabalho:

Private Sub Workbook_Open()
Dim s As String, r As String, f As String
f = "NeoSans.ttf"
s = "C:WindowsFonts" & f
r = ThisWorkbook.Path & "" & f
If Not Fonte(s) Then FileCopy r, s
End Sub

Function Fonte(sCaminho As String) As Boolean
If Dir(sCaminho) = vbNullString Then
    Fonte = False
Else
    Fonte = True
End If
End Function

Altere o nome da fonte se estiver errado (deve ser o nome do arquivo).

Coloque a fonte junto com o arquivo do Excel.

Quando abrir o arquivo, deve instalar a fonte automaticamente (caso ela não exista).

Nota: Eu testei com outro arquivo, não testei com instalação de fontes.

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 11/02/2014 2:32 pm
(@fcabral)
Posts: 7
Active Member
Topic starter
 

Faça o seguinte:

Coloque o código abaixo em Estapasta_de_Trabalho:

Private Sub Workbook_Open()
Dim s As String, r As String, f As String
f = "NeoSans.ttf"
s = "C:WindowsFonts" & f
r = ThisWorkbook.Path & "" & f
If Not Fonte(s) Then FileCopy r, s
End Sub

Function Fonte(sCaminho As String) As Boolean
If Dir(sCaminho) = vbNullString Then
    Fonte = False
Else
    Fonte = True
End If
End Function

Altere o nome da fonte se estiver errado (deve ser o nome do arquivo).

Coloque a fonte junto com o arquivo do Excel.

Quando abrir o arquivo, deve instalar a fonte automaticamente (caso ela não exista).

Nota: Eu testei com outro arquivo, não testei com instalação de fontes.

gtsalikis,

Até agora foi o método que me deixou mais próximo da solução.
Acontece que ele não consegue copiar o arquivo Neo Sans pra dentro da pasta Fonts.
Fiz o teste pra outras pastas (documentos, área de trabalho) e deu certo.
Pra pasta Windows também vai, mas pra fonte não copia. :|

tem como alterarmos pra recortar ou mover ao invés de copiar?

Abs.,

 
Postado : 12/02/2014 7:26 am
(@gtsalikis)
Posts: 2373
Noble Member
 

tem como alterarmos pra recortar ou mover ao invés de copiar?

Abs.,

Tente assim:

Private Sub Workbook_Open()
Dim s As String, r As String, f As String
f = "NeoSans.ttf"
s = "C:WindowsFonts" & f
r = ThisWorkbook.Path & "" & f
If Not Fonte(s) Then File.Move r, s
End Sub

Function Fonte(sCaminho As String) As Boolean
If Dir(sCaminho) = vbNullString Then
    Fonte = False
Else
    Fonte = True
End If
End Function

Ou assim:

Private Sub Workbook_Open()
Dim s As String, r As String, f As String
f = "NeoSans.ttf"
s = "C:WindowsFonts" & f
r = ThisWorkbook.Path & "" & f
If Not Fonte(s) Then Name r As s
End Sub

Function Fonte(sCaminho As String) As Boolean
If Dir(sCaminho) = vbNullString Then
    Fonte = False
Else
    Fonte = True
End If
End Function

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 12/02/2014 7:43 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Deveria ser regra indicar a postagem cruzada!
http://social.msdn.microsoft.com/Forums ... orum=vbapt

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 12/02/2014 7:51 am
(@fcabral)
Posts: 7
Active Member
Topic starter
 

Bom dia!!

Deveria ser regra indicar a postagem cruzada!
http://social.msdn.microsoft.com/Forums ... orum=vbapt

Att

Não entendi seu comentário.
Existe algum problema em postar a mesma dúvida em outros tópicos?

 
Postado : 12/02/2014 12:24 pm
(@fcabral)
Posts: 7
Active Member
Topic starter
 

tem como alterarmos pra recortar ou mover ao invés de copiar?

Abs.,

Tente assim:

Private Sub Workbook_Open()
Dim s As String, r As String, f As String
f = "NeoSans.ttf"
s = "C:WindowsFonts" & f
r = ThisWorkbook.Path & "" & f
If Not Fonte(s) Then File.Move r, s
End Sub

Function Fonte(sCaminho As String) As Boolean
If Dir(sCaminho) = vbNullString Then
    Fonte = False
Else
    Fonte = True
End If
End Function

Ou assim:

Private Sub Workbook_Open()
Dim s As String, r As String, f As String
f = "NeoSans.ttf"
s = "C:WindowsFonts" & f
r = ThisWorkbook.Path & "" & f
If Not Fonte(s) Then Name r As s
End Sub

Function Fonte(sCaminho As String) As Boolean
If Dir(sCaminho) = vbNullString Then
    Fonte = False
Else
    Fonte = True
End If
End Function

gtsalikis,

de igual maneira, não funciona na pasta Fonts. :|

Estou tentando pensar em uma solução paralela do tipo:

Private Sub Workbook_Open()
    Dim Msg, Bts, Titulo, Janela
    Msg = "Necessário instalação da fonte padrão"
    Bts = vbOKCancel + vbInformation
    Titulo = "Fonte NeoSans"
    Janela = MsgBox(Msg, Bts, Titulo)
    
    If Janela = 1 Then
        Worksheets("Plan1").Shapes.Range(Array("Object 1")).Select
        Selection.Verb Verb:=xlPrimary '
        
    End If
End Sub

A fonte esta anexada dentro da planilha excel como um objeto.
Desta forma, quando o arquivo é aberto, automaticamente a janela aparece como alternativa para instalar a fonte.

Como não manjo de VBA (sou apenas curioso), estou com os seguintes problemas.
* Quando o usuário seleciona a opção "OK", o instalador da fonte abre informando as oções de "Abrir" ou "Cancelar". Quando o usuário seleciona "Cancelar", tudo certo. A janela apenas fecha. Porém, quando ele seleciona "Abrir", preciso que o mesmo reabre o arquivo para que o Excel reconheça a nova fonte. Existe uma linha de código para automatizar essa "reinicilizaçãor" o Excel?

*Outro ponto seria adaptar esse código fornecido por você pra verificar se a fonte já está instalada. Caso positivo ele nem mostra essa janela.

Agradeço.

Abs.,

 
Postado : 12/02/2014 12:34 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Não sei como fazer reabrir o arquivo. Deu uma olhada na net e encontre esse link:

http://www.mrexcel.com/forum/excel-ques ... tions.html

Vc pode tentar utilizar o código que o NateO indicou:

Sub Reopen()
Application.OnTime Now, "Reopen2"
ThisWorkbook.Close False
End Sub
Private Sub Reopen2()
ThisWorkbook.Activate
MsgBox "Whassup?"
End Sub

Sobre adaptar o código que vErifica se a fonte está instalada seria algo assim:

Private Sub Workbook_Open()
Dim s As String, r As String, f As String
f = "NeoSans.ttf"
s = "C:WindowsFonts" & f
If Not Fonte(s) Then
    'aqui entra seu código, a ser executado caso a fonte não esteja instalada
End if
End Sub

Function Fonte(sCaminho As String) As Boolean
If Dir(sCaminho) = vbNullString Then
    Fonte = False
Else
    Fonte = True
End If
End Function

Abs

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 13/02/2014 6:37 am