Você está na página 1de 4

Como converter ângulos de

graus/minutos/segundos para ou a
partir de ângulos decimais no Excel
 Email
 Imprimir

Sumário
Medidas angulares normalmente são expressas em unidades de graus, minutos e
segundos (DMS). Um grau é igual a 60 minutos e um minuto é igual a 60 segundos.
Para simplificar alguns cálculos matemáticos, convém expressar medidas angulares
em graus e frações decimais de graus.

Este artigo contém uma função personalizada de exemplo que você pode usar para
converter um valor de grau armazenado em formato decimal para DMS
armazenado em formato de texto e uma função de exemplo que converte DMS em
um valor de grau armazenado em formato decimal.

Mais Informações
A Microsoft fornece exemplos de programação apenas para fins ilustrativos, sem
garantia explícita ou implícita, incluindo, mas sem se limitar a, garantias de
comercialização e/ou adequação para uma finalidade específica. Este artigo
pressupõe que você conhece a linguagem de programação demonstrada e as
ferramentas usadas para criar e depurar os procedimentos. A equipe de suporte da
Microsoft pode ajudar a explicar a funcionalidade de um determinado
procedimento, mas não modificará estes exemplos para fornecer funcionalidades
adicionais ou construir procedimentos a fim de atender às necessidades
específicas.
Se você tiver pouca experiência em programação, é aconselhável contatar um
Microsoft Certified Partner ou o Microsoft Advisory Services. Para obter mais
informações, visite os seguintes sites da Microsoft:

Microsoft Certified Partners - https://partner.microsoft.com/global/30000104

Microsoft Advisory Services - http://support.microsoft.com/gp/advisoryservice

Para obter mais informações sobre as opções de suporte disponíveis e sobre como
contatar a Microsoft, visite o seguinte site da
Microsoft:http://support.microsoft.com/contactus/?ws=support&ln=pt-br

Convertendo graus decimais em graus/minutos/segundos


A seguinte função personalizada do Microsoft Visual Basic for Applications aceita
um ângulo formatado como um valor decimal e o converte em um valor de texto
exibido em graus, minutos e segundos.

Function Convert_Degree(Decimal_Deg) As Variant


With Application
'Set degree to Integer of Argument Passed
Degrees = Int(Decimal_Deg)
'Set minutes to 60 times the number to the right
'of the decimal for the variable Decimal_Deg
Minutes = (Decimal_Deg - Degrees) * 60
'Set seconds to 60 times the number to the right of the
'decimal for the variable Minute
Seconds = Format(((Minutes - Int(Minutes)) * 60), "0")
'Returns the Result of degree conversion
'(for example, 10.46 = 10~ 27 ' 36")
Convert_Degree = " " & Degrees & "° " & Int(Minutes) & "' " _
& Seconds + Chr(34)
End With
End Function

Para usar essa função, crie uma fórmula de conversão, como no seguinte exemplo:

1. Inicie o Excel e pressione ALT + F11 para iniciar o editor do Visual Basic.

2. No menu Inserir, clique em Módulo.


3. Insira o código de exemplo da função personalizada Convert_Degree descrita acima na
folha de módulo.

4. Pressione ALT+F11 para retornar ao Excel.

5. Na célula A1, digite 10.46.

6. Na célula A2, digite a seguinte fórmula:

=Convert_Degree(a1)

A fórmula retorna 10 ° 27'36 "

Convertendo graus/minutos/segundos em graus decimais


A seguinte função personalizada do Microsoft Visual Basic for Applications aceita
uma cadeia de caracteres de texto de graus, minutos e segundos formatada no
mesmo formato exato que retorna a função Convert_Degree (por exemplo, 10° 27'
36") e a converte em um ângulo formatado como um valor decimal. Isso é
exatamente o inverso da função personalizada Convert_Degree.

AVISO: Essa função personalizada falhará se o argumento Degree_Deg não estiver


no seguinte formato
<graus>° <minutos>' <segundos>"
mesmo que o valor em segundos seja 0.

Function Convert_Decimal(Degree_Deg As String) As Double


' Declare the variables to be double precision floating-point.
Dim degrees As Double
Dim minutes As Double
Dim seconds As Double
' Set degree to value before "°" of Argument Passed.
degrees = Val(Left(Degree_Deg, InStr(1, Degree_Deg, "°") - 1))
' Set minutes to the value between the "°" and the "'"
' of the text string for the variable Degree_Deg divided by
' 60. The Val function converts the text string to a number.
minutes = Val(Mid(Degree_Deg, InStr(1, Degree_Deg, "°") + 2, _
InStr(1, Degree_Deg, "'") - InStr(1, Degree_Deg, _
"°") - 2)) / 60
' Set seconds to the number to the right of "'" that is
' converted to a value and then divided by 3600.
seconds = Val(Mid(Degree_Deg, InStr(1, Degree_Deg, "'") + _
2, Len(Degree_Deg) - InStr(1, Degree_Deg, "'") - 2)) _
/ 3600
Convert_Decimal = degrees + minutes + seconds
End Function

Para usar essa função, crie uma fórmula de conversão, como no seguinte exemplo:

1. Inicie o Excel e pressione ALT + F11 para iniciar o editor do Visual Basic.

2. No menu Inserir, clique em Módulo.


3. Insira o código de exemplo da função personalizada Convert_Decimal descrita acima
na folha de módulo.

4. Pressione ALT+F11 para retornar ao Excel.

5. Na célula A1, digite a seguinte fórmula:

=Convert_Decimal("10° 27' 36""")


OBSERVAÇÃO: Você precisa digitar três aspas (""") no final do argumento dessa
fórmula para equilibrar as aspas para os segundos e as aspas para a sequência de
caracteres de texto. Uma referência de célula não exigirá aspas.

6. A fórmula retorna 10.46

Você também pode gostar