• ベストアンサー

EXCEL VBA作成で行き詰りました。助けてください。

今、EXCEL のVBAを作成していて行き詰ってしまいました。 エクセルのシート(sheet1)に10桁数字が列にいくつかあります(E5からE6,E7へと毎日更新していきます)。 その10桁の数字を1つ選択(セルの数字をクリックするイメージでいます)してあるインターネット上のページの検索欄に自動記入→検索させたいと思っています。 その記入から検索までのおおまかな物は完成したのですが、セルを選んでという所がよくわかりません。 わかりにくい説明ですが、どうぞよろしくお願いいたします。 Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub kensaku() Set ie = CreateObject("InternetExplorer.application") ie.Visible = True ie.Navigate ("http://www.○○○○") i = 0 Do Until ie.busy = False Or i > 10 Sleep (1000) i = i + 1 Loop If i > 10 Then MsgBox ("タイムアウト") Exit Sub End If ie.document.all.Idno.Value = "ここに選択したセルの数字を入れたい" ie.document.all.Search.Click End Sub といった感じです。 私自身は、excel vba はかじった程度でここまでも色々と調べながらやっとたどりつきました。 どうぞ、初心者でもわかりますように、ご説明よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.4

#3です ちょっと説明を端折りすぎました、すいません 対象ワークシートモジュール 処理を行いたい(今回はsheet1)、シートタブを右クリック 一番下の「コードの表示」を選択し、表示されるのがワークシートモジュールです 標準モジュール このモジュールの下に、Module1、Module2などを作成し コードを書きます Sub kensaku()はここにかかれていると思います 理解を深めるために、あえてサンプルを二例 '対象ワークシートモジュール 'こちらはお薦め、ダブルクリックで処理を開始します '処理対象セルは D1:D10 です Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'D1:D10以外のセルは処理中止 If Intersect(Range("D1:D10"), Target) Is Nothing Then Exit Sub '選択セルが空白なら処理中止 If Target.Value = "" Then Exit Sub '標準モジュールの「sub test」に選択セル情報を渡し処理する test Target  'ここを変更 kensaku Target Cancel = True End Sub '対象ワークシートモジュール 'こちらはセルを選択するだけで処理を開始します '処理対象セルは E1:E10 です Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Intersect(Range("E1:E10"), Target) Is Nothing Then Exit Sub If Target.Value = "" Then Exit Sub test Target  'ここを変更 kensaku Target End Sub '標準モジュール Sub test(picup As Range) MsgBox "選択したセルアドレス:" & picup.Address(0, 0) MsgBox "選択したセルの値:" & picup.Value End Sub 新しいファイルで試した方が良いと思います それぞれをシート及び標準モジュールにコピペ 対象範囲内のセルを選択したり、ダブルクリックしたり データを入力、削除など処理内容を確認してみてください これで分るかな?

suisu0830
質問者

お礼

できました!!! ありがとうございました! 本当にずっと四苦八苦していたので感激です。 本当にありがとうございまいた。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.3

よく分かりませんが こんな感じ? '対象ワークシートモジュール Private Sub Worksheet_SelectionChange(ByVal Target As Range) kensaku Target End Sub Sub kensaku(picup As Range)   '追加    :    : >ie.document.all.Idno.Value = "ここに選択したセルの数字を入れたい" ie.document.all.Idno.Value = picup.Value  '追加    :    : End Sub

suisu0830
質問者

お礼

ご回答ありがとうございます。 すみません上手くいきませんでした。といいますか、私はまだまだ素人ですので、お答えいただいた内容が上手く盛り込めなかったようです。もしお時間がお許しになりましたら、(今でも十分わかりやすい内容ですが)素人でもわかるような記述でお答えいただけたらうれしく思います。勝手お言い申し訳ありませんがよろしくお願いいたします。

すると、全ての回答が全文表示されます。
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

InputBoxメソッドを使われてはいかがでしょうか。 下記ページを参考にしてみてください。 解らなければ補足をいれてください。 実は奥が深いInputBox http://officetanaka.net/excel/vba/tips/tips37.htm

suisu0830
質問者

補足

自分なりにものすごくおしい所までたどりついたのですが、ネットページの検索欄にexcelに書かれた数値でなく undefined と表示されてしまいました。何度も無理をいいますが教えてくださいませ。お願いします。 Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub セル選択() Dim buf As Range Set buf = Application.InputBox(Prompt:="セルを選択してください。", Type:=8) Range("H2") = buf End Sub Sub kensaku() Set ie = CreateObject("InternetExplorer.application") ie.Visible = True ie.Navigate ("http://www.○○○○") i = 0 Do Until ie.busy = False Or i > 10 Sleep (1000) i = i + 1 Loop If i > 10 Then MsgBox ("タイムアウト") Exit Sub End If ie.document.all.Idno.Value = H2 ie.document.all.Search.Click End Sub Sub startネット検索する() Call セル選択 Call kensaku End Sub 教えていただいた所を読みこのような感じで作成してみました。 よろしくお願いします。

すると、全ての回答が全文表示されます。
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

>"ここに選択したセルの数字を入れたい" 取りあえず。下記でためしてください。 ie.document.all.Idno.Value = Activecell.value

suisu0830
質問者

お礼

ご回答ありがとうございます。 すみません質問がへたくそでした。申し訳ありません。 例えば、sheet1のE5に1234567890という数字があってその数字を選択すると、ie.document.all.Idno.Value =○○ の○○に1234567890という数字が入りネットページ上のIdnoに12567890が自動記入されSearchがクリックされるといった具合になります。 E5がE7やE9の違う数字を調べたい時もありますので、セルをクリックしての選択式でなんとか出来ないかなと思いまして。 どうぞよろしくお願いいたします。

すると、全ての回答が全文表示されます。

関連するQ&A