過去問の
http://oshiete.goo.ne.jp/qa/7336006.html
につきまして、上記の回答をそのままVBAに記述して
EXCEL2010において実行してみたのですが
「コンパイルエラー 構文エラー」になってしまい
添付の写真のようにエラーの箇所が示されるものの当方では修正ができません。
当方プログラマーではなくただコピペして実行してみただけです。
ググってもわかるレベルでないことがわかり
ここにて質問させていただきたくこととしました。
また、本当のところを申しますと
過去問では出発地の住所が"東京都渋谷区恵比寿~"に固定されておりますが
EXCELシート上のA列に出発地、B列に到着地の住所を入力しておくと
両地点の(車での)距離を表示するようにしたいのです。
大変に恐縮ですが、ご教示くださいますようお願い致します。
No.3ベストアンサー
- 回答日時:
以前のVBAは役に立たないので、別のVBAを書き換えています。
VBAでIEのページオブジェクトを開いてから、直接書き込んでいます。
質問のものはHTMLファイルを作成して、それを開いています。
表示が終わる(VBAが終了)するまでページはさわらないでください。
1行目はシングルクリックで開くコード。
書き換えるとダブルクリックに出来ます。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
以下VBA
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("A:B")) Is Nothing Then Exit Sub
If Cells(Target.Row, 1).Text = "" Or Cells(Target.Row, 2).Text = "" Then Exit Sub
Dim objIE As Object
Dim tgt1
Dim tgt2
Set objIE = CreateObject("InternetExplorer.application")
tgt1 = Cells(Target.Row, 1).Text
tgt2 = Cells(Target.Row, 2).Text
objIE.Visible = True
objIE.Navigate "http://maps.google.co.jp/maps"
Do While objIE.Busy = True Or objIE.ReadyState <> 4: Loop
'--ルート乗換案内オブジェクトページのの項目をダイレクト書き込み
With objIE.Document
.all("d_launch").Click
Do While objIE.Busy = True Or objIE.ReadyState <> 4: Loop
Application.Wait Now + TimeValue("00:00:02")
'--車で行く~自社住所~得意先住所~検索
.all("dir_d_btn").Click
.all("d_d").Value = tgt1
.all("d_daddr").Value = tgt2
.all("d_sub").Click
.all("d_options_show").Click
End With
Set objIE = Nothing
End Sub
なんとなく似ているからプログラムは少しの書き換えでできるのでは?
という甘い考えで質問致しまして申し訳ございませんでした。
それに苛立つ風もなく一から回答をいただいたばかりか
使い勝手の良いようにプラスアルファのアドバイスまで...
大変にありがたかったので、
ポイントを購入したりしてお礼を増やせないかと思い調べてみましたが
そういうのはないみたいで、残念至極です。
言葉だけでのお礼になってしまいますが、心から御礼申し上げます。
No.2
- 回答日時:
適当な修正ですが…
2行目:A列を選択したときに動作→A:B列を選択したときに動作するよう修正
If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
↓
If Intersect(Target, Range("A:B")) Is Nothing Then Exit Sub
30~31行目:選択した行の1カラム目(A列)、2カラム目(B列)を出発地、目的地に指定するよう修正
.WriteText " origin: ""東京都渋谷区恵比寿1-19-15"" ,", 1
.WriteText " destination: """ & Target.Text & """ ,", 1
↓
.WriteText " origin: """ & Cells(Target.Row, 1).Text & """ ,", 1
.WriteText " destination: """ & Cells(Target.Row, 2).Text & """ ,", 1
--
> 両地点の(車での)距離を表示するようにしたいのです。
最初からそのつもりで1から作るんならともかく、ここから修正だとちょっと手を付けにくいです。
わざわざ地図の部分のみ表示するように作られてるっぽいですし。
多くの経路探索のサイトでは、経路検索結果のURLが、
http://~map~.~/~&~=~&FROM=出発地の住所&TO=目的地の住所&~=~&~
とかってなるので、住所の文字列が上手くハマるように、URLの文字列を作成してHYPERLINK関数でリンクとかってのが簡単だと思いますが。
No.1
- 回答日時:
教えて!gooからの表示だと、URLを省略して表示するので、コードの中のURLも省略されているため適正に処理されないです。
OKWaveのQ&Aの方からコピペしてみては?
エクセルでワンクリックでルート検索したいのですが… | MS OfficeのQ&A【OKWave】
http://oshiete.goo.ne.jp/qa/7336006.html
#経験上、こっちは改行コードが変だった気もしますが…。
確かにこちらからコピペしたら正常に表示されました!
すぐにご回答くださり大変にありがとうございました。
質問後半部分のご回答をいただければなお幸いですが、
どなたかA列とB列に入力した両地点を結ぶルートの表示するよう
プログラムを書き換えてはいただけないでしょうか。
なにとぞよろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 重複したデータ(空白は除く)のVBA表記について 4 2022/08/15 07:28
- Excel(エクセル) Excel起動時にエラーダイアログが表示される 3 2022/07/28 19:52
- Visual Basic(VBA) Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。 2 2023/07/14 14:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
B列の最終行までA列をオート...
-
vba 2つの条件が一致したら...
-
Changeイベントでの複数セルの...
-
エクセル 2つの表の並べ替え
-
エクセルでフォームのチェック...
-
VBAを使って検索したセルをコピ...
-
【VBA】2つのシートの値を比較...
-
文字列の結合を空白行まで実行
-
VBAコンボボックスで選択した値...
-
マクロ 最終列をコピーして最終...
-
VBA 値と一致した行の一部の列...
-
URLのリンク切れをマクロを使っ...
-
Excelで、あるセルの値に応じて...
-
VBAでのリスト不一致抽出について
-
マクロについて。S列の途中から...
-
エクセルVBA intersect colu...
-
VBマクロ 色の付いたセルを...
-
VBAを用いて条件付きの平均値、...
-
データグリッドビューの一番最...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Cellsのかっこの中はどっちが行...
-
VBAのコードを教えてください
-
VBAを使って検索したセルをコピ...
-
B列の最終行までA列をオート...
-
エクセルvbaについて
-
vba 2つの条件が一致したら...
-
Excelで、あるセルの値に応じて...
-
VBA UserFormからの転記で
-
VBAのFind関数で結合セルを検索...
-
文字列の結合を空白行まで実行
-
IIF関数の使い方
-
VBA 何かしら文字が入っていたら
-
マクロ 最終列をコピーして最終...
-
Changeイベントでの複数セルの...
-
エクセルVBAにて =A1=B1とすれ...
-
【VBA】2つのシートの値を比較...
-
データグリッドビューの一番最...
-
VBマクロ 色の付いたセルを...
-
VBAで指定範囲内の空白セルを左...
おすすめ情報