
お世話になっております。ExcelVBAを使って2か所の
緯度と経度から距離を測定したいのですが上手くいきません。
データ(緯度と経度)が入っているセルはデータ型で小数点7ケタまで入っています。
これをVBAを使用し数値データからシリアル値に変換し計算をしたいのです。
緯度と経度から距離を求める式はヒュベニの計算式を使用しています。
公式は距離=sqrt((M*dP)*(M*dP)+(N*cos(P)*dR)*(N*cos(P)*dR))です。
P=2点の平均緯度 radians((緯度01+緯度02))*24
dP=2点の緯度差 (緯度01-緯度02)*24
dR=2点の経度差 (経度01-経度02)*24
M=子午線曲率半径 6334834/sqrt((1-0.006674*sin(P)*sin(P))^3)
N=卯酉線曲率半径 6377397/sqrt(1-0.006674*sin(P)*sin(P))
作成した関数は
Function kyori(X1,Y1,X2,Y2)
Dim Latit01 As Double
Dim Longi01 As Double
Dim Latit02 As Double
Dim Longi01 As Double
Dim LatitXX1 As Date
Dim LongiYY1 As Date
Dim LatitXX2 As Date
Dim LongiYY2 As Date
Dim D As Double
Dim P As Double
Dim dP As Double
Dim dR As Double
Dim M As Double
Dim N As Double
'値の代入
Latit01 = X1
Latit02 = X2
Longi01 = Y1
Longi02 = Y2
'シリアル値に変換
LatitXX1 = format((Latit01 /24), "[h]:mm:ss.000")
LongiYY1 = format((Longi01 /24), "[h]:mm:ss.000")
LatitXX2 = format((Latit02 /24), "[h]:mm:ss.000")
LongiYY2 = format((Longi02 /24), "[h]:mm:ss.000")
P = (Application.WorksheetFunction.Radians((LatitXX1 + LatitXX2) / 2)) * 24
dP = (LatitXX1 - LatitXX2) * 24
dR = (LongiYY1 - LongiYY2) *24
M = 6334834 / Application.WorksheetFunction.sqrt((1-0.006674 * Sin(P) * Sin(P))^3)
N = 6377397 / Application.WorksheetFunction.sqrt((1-0.006674 * Sin(P) * Sin(P))
kyori = Application.WorksheetFunction.sqrt((M*dP*Application.WorksheetFunction.Pi()/180)*(M*dP*Application.WorksheetFunction.Pi()/180)+(N*sos(P)*dR*Application.WorksheetFunction.Pi()/180)*(N*cos(P)*dR*Application.WorksheetFunction.Pi/180))
これを実行するとシリアル値に変換するときに止まってしまいます。
エラーは出ず、Excekのセルには#VALUEと返されます。
どなたか教えてください。
No.3ベストアンサー
- 回答日時:
ANo.2です。
> Excelでの結果は#NAME?が返されました。
>
> またエディターでブレイクポイントを打っても止まりませんでした。
こちらの環境(Excel2010)では、正常に値を返しますしブレイクポイントも効きます。
コードは標準モジュールに入れていますか?あと、Excelのバージョンは何でしょう?

mt2008さま
ありがとうございます。
出来ました。
私の環境はExcel2010で標準モジュールにも書いておりましたが
先ほどまでできませんでしたが今、できました。
お騒がせしてすいませんでした。
ありがとうございます。
No.2
- 回答日時:
Date型変数に文字列を入れようとしてたり、かっこの数が合わなかったりして解りにくかったので、ざっくりと作り直してみました。
ちょっと自信がないですが大体こんな感じで良いんじゃないでしょうか。
Function kyori(X1, Y1, X2, Y2)
Dim D As Double
Dim P As Double
Dim dP As Double
Dim dR As Double
Dim M As Double
Dim N As Double
With WorksheetFunction
LatitXX1 = (X1 / 180) * .Pi
LongiYY1 = (Y1 / 180) * .Pi
LatitXX2 = (X2 / 180) * .Pi
LongiYY2 = (Y2 / 180) * .Pi
P = (LatitXX1 + LatitXX2) / 2
dP = (LatitXX1 - LatitXX2)
dR = (LongiYY1 - LongiYY2)
M = 6334834 / Sqr((1 - 0.006674 * Sin(P) * Sin(P)) ^ 3)
N = 6377397 / Sqr((1 - 0.006674 * Sin(P) * Sin(P)))
kyori = Sqr((M * dP) * (M * dP) + (N * Cos(P) * dR) * (N * Cos(P) * dR))
End With
End Function
この回答への補足
mt2008さま
ありがとうございます。
教えていただいた関数を実行してみました。
Excelでの結果は#NAME?が返されました。
またエディターでブレイクポイントを打っても止まりませんでした。
すいません。
No.1
- 回答日時:
テストプログラムとデータのサンプルを!
この回答への補足
JazzCorp様
ありがとうございます。
ExcelにはX1(緯度1)が35.658599、Y1(経度1)が139.745443。
X2(緯度2)35.71007,、Y2(経度2)139.80948となっております。
ちなみにテストデータで東京タワーとスカイツリーの緯度経度です。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
緯度、経度 1分は何km?
-
Excelでの緯度経度入力方法
-
金髪で青い目の人が多い国はど...
-
Excelについて質問です。 画像...
-
地球における自分の家の真裏の...
-
緯度と経度や赤道線を習うのは...
-
経度緯度の小数点表記への変換...
-
札幌の対蹠点の経度と緯度は?
-
インドのニューデリーは鹿児島...
-
メルカトル図法の投影法の表式
-
1秒(角度の)辺りの距離は何...
-
秒数が3ケタの緯度経度の意味は?
-
Excelの自動計算で緯度・経度を...
-
北緯・緯度の読み方について
-
東京(北緯34度41分、東経139度...
-
距離と方位角から緯度、経度が...
-
緯線、緯度&経度、経線の違い...
-
緯度と経度ってどっちが、たて...
-
経緯度の比率を知りたい
-
中緯度、高緯度、低緯度って具...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelについて質問です。 画像...
-
Excelでの緯度経度入力方法
-
緯度、経度 1分は何km?
-
Excelの自動計算で緯度・経度を...
-
EXCELで、60進法の緯度経度を10...
-
中緯度、高緯度、低緯度って具...
-
緯度経度の計算(変換)
-
秒数が3ケタの緯度経度の意味は?
-
緯度と経度や赤道線を習うのは...
-
東京(北緯34度41分、東経139度...
-
金髪で青い目の人が多い国はど...
-
【至急!】座標データを緯度経...
-
GIS、GPS,WebGIS...
-
経度緯度の小数点表記への変換...
-
1秒(角度の)辺りの距離は何...
-
緯線、緯度&経度、経線の違い...
-
住所から直線距離を算出したい...
-
緯度と経度の秒とその下の単位...
-
四季
-
経緯度の比率を知りたい
おすすめ情報