• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB6 エラー:438 (InputBoxに値))

VB6 エラー:438 (InputBoxに値) - 初心者のための解決方法

このQ&Aのポイント
  • VB6.0のFormのInputBoxに値をセットしようとすると実行時エラー438が発生する問題の解決方法を教えてください。
  • プロパティやメソッドがサポートされていないエラーコード438が発生し、値のセットができません。
  • 割り当てられたオブジェクトが正しく操作されていないためにエラーが発生している可能性があります。

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

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

objIE.Document.all.oil これだと、idによる検索なので見つかりません。 nameで検索するには objIE.Document.all.getElementsByName("oil")

wata_a
質問者

お礼

todo36さん、早速のご回答ありがとう、ございました。 objIE.Document.all.getElementsByName("oil") = 20 と、修正して実行してみたのですが、Error438で状況は変わりませんでした。 確かにIDではなくnameでした。今後は意識して記述するようにします。 <html記述 (IE開発者ツール)>   <td><input name="oil" type="text" size="20" value="">リットル<span class="blue01 ml10">※小数点第2位まで入力可</span></td> <URL名>  Debug.Print objIE.LocationURL   ⇒ http://premium-club.jp/mygarage/mycarbox/KyuuyuRecord# 追記) objIE.Document.all.oil.Value = 20(nameで指定)で一度、動いたのでこの記述を使ったつもりでしたが、自信はありません。 何か環境を変えるようなことをやってしまったのでは?

wata_a
質問者

補足

<現状追加 2013/11/27>  "input"タグの取得をトライしました。結果はゼロ件、以下のとおりでした。 これは関係しているのでしょうか?  ? objIE.Fullname    ⇒ C:\Program Files (x86)\Internet Explorer\IEXPLORE.EXE  Set objTag = objIE.Document.getElementsByTagName("input")  ? objTag.Length    ⇒  0

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

関連するQ&A

  • エクセルでのVBA

    エクセルでVBAを使ってIEで指定のURLを開いて、VBAで指定したWEBフォームにエクセルで指定したセルの値を入力したいのですが、下記のコードを入れるとエラーが出てしまいます。   A1:1-1 or 1-2 or 1-3 B1:月曜日 C1:火曜日 D1:水曜日 上のA1~D1まで入力した上でコマンドボタンをクリックすると、自動的に行うようにしたいです。 Private Sub CommandButton1_Click() Dim objie As Object Set objie = CreateObject("InternetExplorer.application") objie.Visible = True objie.Navigate "http://●●●●/form.html" Dim kubun As String kubun = range("A1") Select Case kubun Case "1-1" call ma1_1 Case "1-2" call ma1_2 Case "1-3" call ma1_3 End select Set objie = Nothing End sub Sub ma1_1() objie.Document.all.form1_1.Value = Range("B1") End Sub Sub ma1_2() objie.Document.all.form1_1.Value = Range("B1") objie.Document.all.form1_2.Value = Range("C1") End Sub Sub ma1_3() objie.Document.all.form1_1.Value = Range("B1") objie.Document.all.form1_2.Value = Range("C1") objie.Document.all.form1_3.Value = Range("D1") End Sub これで実行を押すと、objie 変数が定義されていません。と出てしまいます。このobjieを有効にするにはどうしたよいのでしょうか? わかる方いましたらご教授願います。 よろしくお願いします。

  • IEの制御のマクロをつくっていますが

    ログインと作業実行を別々のマクロにしたいのですが マクロでログインを省略して次の画面にもっていきたいので objIE.navigate "https://........... とやると、セキュリティの関係だと思いますが画面がはじかれてしまいます。 ですのでいまはひとつの作業をするのにその都度ログインのマクロからになってしまいます。 何かいい方法がございましたらご教授ください。 Sub ログイン() Dim objIE As InternetExplorer Dim strUserName, strPassword As String strUserName = Range("AA1").Value strPassword = Range("AA2").Value Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.navigate "https://mobile.e..............’ログイン画面 IE_Complete objIE '表示終わるまで待つ objIE.Document.All.req_userId.Value = strUserName 'ユーザーネーム objIE.Document.All.req_password.Value = strPassword 'パスワード objIE.Document.All.LoginSubmit.Click 'クリック IE_Complete objIE ここまでログイン 上記を省略して以下からはじめたい Sub 作業実行() objIE.navigate "https://...........

  • VBからInternet Explorer

    こんにちは。 VBから、現在開いているInternet Explorerのウィンドウに特定のページを表示させることはできないでしょうか。 Dim ObjIE As Object Set ObjIE = CreateObject("InternetExplorer.Application") ObjIE.Navigate "なんたらかんたら" ObjIE.Visible = True でいったん、ブラウザを新規に開きました。いま作ったObjIEに別のページを開くときは、Set ObjIE = Notingを実行せずにObjIE.Navigateでまた別のページを指定すればいいのはわかったのですが、その前にユーザがIEの×ボタンを押してブラウザを閉じてしまった場合、ObjIEがないのでObjIE.Navigateが実行できず、エラーが出てしまいます。 ObjIEがまだ開いているときはそこに開き、ObjIEが閉じられてしまったときは新規に開くには、どうしたらいいでしょうか。 ObjIEが閉じられたかどうか参照する方法があるのかどうかがわかりません。 知っている方がいらしゃいましたらよろしくお願いします。

  • VB2008のプログラムがXP(32bit)では正常ですが、Vista(X64)ではエラーとなります。

    VB2008 Express Edition で勉強中なのですが、下記のソースをデバッグを行い実行してみますと、どちらもデバックは正常なのですが、実行時にXP(32bit)では正常に実行されますが、VistaX64(64bit)では実行時にエラーとなります。 VB2008のExpress Editionは32bit版と64bit版が有るのでしょうか。 ダウンロード時には確か有りませんでしたが。 それとも、デバック時又はコンパイル時に64bit,32bit指定が有るのでしょうか。 どなたかご存じの方がおられましたらご指導を宜しく御願い致します。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim objIE As Object Dim strURL As String = "https://order.store.yahoo.co.jp/cgi-bin/wg-request-catalog?charade" objIE = CreateObject("InternetExplorer.application") objIE.Navigate(strURL) objIE.Visible = True 'ここから下の記述にエラーが出る。 While objIE.ReadyState <> 4 While objIE.Busy = True My.Application.DoEvents() End While End While objIE.Document.Forms(0).Item("ship-name").Value = "山本山" objIE.Document.Forms(0).Item("ship-country").Value = "日本" objIE.Document.Forms(0).Submit() End Sub

  • yahooにvbaでにログインする時

    今までは objIE.Document.all("UserName").Value = MyUserName objIE.Document.all("Passwd").Value = PW で、問題なくログインできていたのに ("UserName").Value だけ失敗するようになりました。 エラー内容は オブジェクトが必要です。(Error 424) です。 しかし、 objIE.Document.all.UserName.Value = MyUserName objIE.Document.all.Passwd.Value = PW にするとコードが通ります。 ダブルコーテーションでくくると何がいけないのでしょうか?

  • エラーがでてしまう・・・・

    お世話になります。 見よう見まねでアカウント取得プログラムを 作成してみたのですがエラーがでてうまく動作しません。 フォームに webbrowserとコマンドクリックボタン ひとつずつという簡単なプログラムなのですが・・。 エラーの内容は WebBrowser1.Document.All.mail.Value この部分が黄色くなりオブジェクトはこのプロパティをサポートしていません。。。とでます。 僕自身はじめて3週間ぐらいなんで 何が悪いのかさっぱり・・ 詳しい方教えてください。お願いします。 Private Sub Command1_Click() Dim objIE As Object 'IEオブジェクト参照用 Dim k As Integer Dim Now As Long For k = 93 To 1000 Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = False WebBrowser1.Navigate2 "http://www.tram-stopper.com/community/adult/panel.cgi?http=a&sh=sh" Do While objIE.Busy = True DoEvents WebBrowser1.Document.All.ps.Value = "ken3k" WebBrowser1.Document.All.linkurl.Value = "http://www.yahoo.co.jp/" WebBrowser1.Document.All.Id.Value = "afx" & k WebBrowser1.Document.Forms(0).Submit     Now = Timer     While Timer < Now +1   '1秒間待機する     DoEvents     Wend Next k End Sub

  • VBでのIE操作

    VBでのIE操作をしようとして色々調べています。 色んなサイトを見ながら途中までは何とかできましたが、どうしてもリンク先を表示できません。 お分かりになる方いましたら、お力添えいただければ幸いです。 状況: Excel2007使用  IE7  VB初心者です。 やりたい内容: VBでIEを立ち上げる ↓ ページからリンクをクリックする (ページ上に画像が貼り付けてあって、そこにURLくっついててハイパーリンクになっている。) (セキュリティの関係でハイパーリンク先を初期で表示することはできない。) ↓ 表示されたページに検索したい項目を入力 ↓ 結果をエクセルに反映する。 以上の作業をVBで組もうと思ってます。 よろしくお願いします。 Option Explicit Sub ie_test() 'IEの起動 Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True '処理したいページを表示します。 objIE.navigate "処理したいページ" 'ページの表示待ち While objIE.readyState <> READYSTATE_COMPLETE Or objIE.Busy = True DoEvents Wend '開かれたIEを探す。 Dim objSHELL As Object Dim objWINDOW As Object Dim newIE As InternetExplorer Dim wait_time As Date Dim yCNT As Long Dim i As Integer '表示待ち wait_time = DateAdd("s", 2, Now()) Do While Now() < wait_time DoEvents Loop 'リンクの貼ってある画像をクリック For i = 0 To objIE.document.images.Length - 1 If InStr(objIE.document.images.Item(i).outerHTML, "image/btn131b1.gif") > 0 Then objIE.document.images.Item(i).Click End If Next '表示待ち wait_time = DateAdd("s", 2, Now()) Do While Now() < wait_time DoEvents Loop 'シェルのオブジェクトを作成する Set objSHELL = CreateObject("Shell.Application") Set newIE = objSHELL.Windows(objSHELL.Windows.Count - 1) Set objSHELL = Nothing '新しいウィンドウのログインボタンを押す Dim objINPUT As Object 'Inputタグ格納用 For Each objINPUT In newIE.document.all.tags("INPUT") If objINPUT.Value = "ログイン" Then objINPUT.Click Exit For End If Next '調べる項目 For yCNT = 3 To 1002 ' If Trim(Cells(yCNT, 1)) = "" Then Exit For 'A列が空白になったらループを抜ける 'ページが表示されたので処理を行います。 newIE.document.all("phone_no").Value = Cells(yCNT, 1) 'A列の文字を参照する newIE.document.all("exec").Click ※ここでオブジェクト変数。。。のエラーが発生する※ '表示待ち wait_time = DateAdd("s", 2, Now()) Do While Now() < wait_time DoEvents Loop '表示されたウインドウからデータをセットする Cells(yCNT, 2) = newIE.document.body.innerText '検索の結果をエクセルに反映 '新しいIEを閉じる newIE.Quit Set newIE = Nothing '前のIEを閉じる objIE.Quit Set objIE = Nothing Next yCNT End Sub 初心者なので色々調べたのですがわかりませんでした。。。

  • VBの記述方法はVBAと同じなのですか?

    これからVisual Studio 2012を導入してVBA(Excel)でやっていたことをVSでやりたいのですが 基本的にVSのVisual Basicの記述方法はVBAと同じなのでしょうか? 例えばネットのあるサイトをログインして遷移後のhtmlを取得するには、VBAだと以下のように書きます。 Dim objIE As Object Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://xxxxxx/login.aspx" objIE.document.All.txt_userid.Value = xxx 'ユーザー名 objIE.document.All.txt_pass.Value = xxx 'パスワード objIE.document.All.btn_login.Click '送信結果のページ読み込みが終わるまでループ While (objIE.Busy = True Or objIE.ReadyState <> 4)  DoEvents Wend '表示したページの<BODY>部のHTMLを取得 Dim htmlBody As String htmlBody = objIE.Document.Body.InnerHtml C#で記述しようか、慣れているVBAと似ているVBで書こうか悩んでいます。 どうぞよろしくお願い致します。

  • VBでのIE操作

    VBでのIE操作をしようとして色々調べています。 色んなサイトを見ながら途中までは何とかできましたが、どうしてもリンク先を表示できません。 お分かりになる方いましたら、お力添えいただければ幸いです。 状況: Excel2007使用  IE7  VB初心者です。 やりたい内容: VBでIEを立ち上げる ↓ ページからリンクをクリックする (ページ上に画像が貼り付けてあって、そこにURLくっついててハイパーリンクになっている。) (セキュリティの関係でハイパーリンク先を初期で表示することはできない。) ↓ 表示されたページに検索したい項目を入力 ↓ 結果をエクセルに反映する。 以上の作業をVBで組もうと思ってます。 よろしくお願いします。 Option Explicit Sub IE_Test() 'IEの起動 Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True '処理したいページを表示します。 objIE.Navigate "(表示したいページ)" 'ページの表示待ち   While objIE.readyState <> READYSTATE_COMPLETE Or objIE.Busy = True DoEvents Wend '開かれたIEを探す。 Dim objSHELL As Object Dim objWINDOW As Object Dim newIE As InternetExplorer '調べる項目に対して、、、 For yCNT = 3 To 102 ' If Trim(Cells(yCNT, 1)) = "" Then Exit For 'A列が空白になったらループを抜ける ここがわからない。。。 (画像になっているハイパーリンクをクリックしたい、、、) 'シェルのオブジェクトを作成する Set objSHELL = CreateObject("Shell.Application") Set newIE = objSHELL.Windows(objSHELL.Windows.Count - 1) Set objSHELL = Nothing '念のため、新しいウインドウの表示を待つ While newIE.readyState <> READYSTATE_COMPLETE Or newIE.Busy = True DoEvents Wend 'ページが表示されたので、表示された文章に対して、処理を行います。 newIE.document.all("phone_no").Value = Cells(yCNT, 1) 'A列の文字を参照する newIE.document.all("exec").Click '表示されたウインドウ(newIE)からデータをセットする Cells(yCNT, 2) = newIE.document.body.innerText '検索の結果をエクセルに反映 '新しいIE(子IE)を閉じる newIE.Quit Set newIE = Nothing '前のIE(親IE)を閉じる   objIE.Quit set objIE = Nothing Next yCNT End Sub 上記が現在までのできているコードです。 ここにも色々間違いがある可能性もあります。 ご指摘頂けましたら幸いです。 よろしくお願いします。

  • vba ie操作 ボタンを押したい(2)

    https://ca.omc-card.co.jp/member/omcplus_login.html のサイトにログインしたいのですが、ログインボタンが押せません。 ソースは、 ********************************************************************************** <FORM action="../member/xt_mem_top_login.asp" method="post" name="form1"><input type="hidden" name="sid" value=""><input type="hidden" name="pw" value="">     ~~~省略~~~ <TABLE border="0" cellspacing="0" cellpadding="5" class="tab_button_bottom15"> <TR> <TD><A href="javascript:checkInput(document.form1);"><IMG src="../img/button/login.gif" alt="ログイン" width="160" height="35" border="0"></A></TD> </TR> </TABLE> </FORM> ********************************************************************************** です。 --------------------------------------------------------------------------------- Sub test() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "https://ca.omc-card.co.jp/member/omcplus_login.html" Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop objIE.Document.forms(0).Item("sid_input").Value = "×××" objIE.Document.forms(0).Item("pw_input").Value = "×××" Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop 'objIE.Document.forms(1).submit 'エラーになる objIE.Document.all.Item("document.form1").Click 'エラーになる objIE.Document.forms(0).getElementsByTagName("input")(0).Click 'エラーにならないけどクリックもされない。 objIE.Document.forms(0).getElementsByTagName("input")(1).Click 'エラーにならないけどクリックもされない。 objIE.Document.forms(0).getElementsByTagName("document.form1")(1).Click 'エラーになる objIE.Document.forms(1).getElementsByTagName("input")(1).Click 'エラーになる Set objIE = Nothing End Sub --------------------------------------------------------------------------------- テキストにIDとPWを入れるところまでは出来たのですが、 ログインボタンを押すことができません。 すいませんがご教授ご回答よろしくお願いしますm( )m