Excel で10 進度を度分秒に変換するには、どうすればよいですか?
ワークシート上に10 進度で表示されたデータ一覧がある場合、それを下記のスクリーンショットのように度・分・秒形式に変換する必要が生じることがあります。Excel でこの変換を素早く行うには、どうすればよいでしょうか?
![]() | ![]() | ![]() |
VBA を使用して10 進度を度分秒に変換する
以下の手順に従って、VBA コードで10 進度を度・分・秒形式に変換してください。
1.ALTキーを押しながらF11キーを押すと、Microsoft Visual Basic for Applicationsウィンドウが開きます。
2.挿入>標準モジュールをクリックして、VBA コードをモジュールにコピーします。
VBA:10 進度を度、分、秒に変換する
Sub ConvertDegree()
'Update 20130815
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each Rng In WorkRng
num1 = Rng.Value
num2 = (num1 - Int(num1)) * 60
num3 = Format((num2 - Int(num2)) * 60, "00")
Rng.Value = Int(num1) & "°" & Int(num2) & "'" & Int(num3) & "''"
Next
End Sub
3.実行ボタンをクリックするか、F5キーを押して、VBA を実行します。
4.画面にダイアログが表示されるので、変換したいセルを選択できます。スクリーンショットをご参照ください:

5.OKをクリックすると、選択したデータが度、分、秒に変換されます。スクリーンショットをご参照ください:
![]() | ![]() | ![]() |
ヒント:上記の VBA コードを実行すると元のデータが失われてしまうため、事前に必ずデータをバックアップすることをおすすめします。
VBA を使用して度分秒を10 進度に変換する
度/分/秒形式のデータを10 進度に変換したい場合があります。次の VBA コードを使えば、これを素早く処理できます。
1.ALTキーを押しながらF11キーを押すと、Microsoft Visual Basic for Applications ウィンドウが開きます。
2.挿入>標準モジュールをクリックし、VBA コードをモジュールにコピーします。
VBA:度、分、秒を10 進度に変換する
Function ConvertDecimal(pInput As String) As Double
'Updateby20140227
Dim xDeg As Double
Dim xMin As Double
Dim xSec As Double
xDeg = Val(Left(pInput, InStr(1, pInput, "°") - 1))
xMin = Val(Mid(pInput, InStr(1, pInput, "°") + 2, _
InStr(1, pInput, "'") - InStr(1, pInput, _
"°") - 2)) / 60
xSec = Val(Mid(pInput, InStr(1, pInput, "'") + _
2, Len(pInput) - InStr(1, pInput, "'") - 2)) _
/ 3600
ConvertDecimal = xDeg + xMin + xSec
End Function
3.コードを保存してこのウィンドウを閉じ、空白セル(例:セル A1)を選択し、次の数式を入力します:=ConvertDecimal(「10° 27' 36」「」)(「10° 27' 36」「」 は変換したい度分秒の値を表しており、必要に応じて変更できます)。その後、Enterキーを押してください。スクリーンショットをご参照ください:
![]() | ![]() | ![]() |




