Como converter ângulos de graus/minutos/segundos para ou a partir de ângulos decimais no Excel

Traduções deste artigo Traduções deste artigo
ID do artigo: 213449 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

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, talvez você queira expressar medidas angulares em graus e frações decimais de graus.

Este artigo contém uma amostra de função personalizada que você pode usar para converter um valor em graus (armazenado em formato decimal) em DMS (armazenado em formato de texto) e também uma amostra de função que converte DMS em um valor em graus (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 esta 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 para a 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 texto de graus, minutos e segundos com o mesmo formato retornado pela 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 formato de
<graus>° <minutos>' <segundos>"
mesmo que o valor de 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 esta 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 para a 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: É necessário digitar três aspas (""") no final do argumento dessa fórmula para equilibrar as aspas de segundos e as aspas da cadeia de texto. Uma referência de célula não exigirão uma aspa.
  6. A fórmula retorna 10.46

Propriedades

ID do artigo: 213449 - Última revisão: sexta-feira, 29 de novembro de 2013 - Revisão: 9.0
A informação contida neste artigo aplica-se a:
  • Microsoft Office Excel 2003
  • Microsoft Excel 2010
  • Microsoft Office Excel 2007
Palavras-chave: 
kbfunctions kbconvert kbsample kbdtacode kbhowto kbprogramming KB213449

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com