• ベストアンサー

エクセルでの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を有効にするにはどうしたよいのでしょうか? わかる方いましたらご教授願います。 よろしくお願いします。

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

  • ベストアンサー
  • mindatg
  • ベストアンサー率48% (110/227)
回答No.1

objieがCommandButton1_Click()関数内でしか定義されていないのに 他の関数で呼び出せるわけがありません。 Private objie As Object Private Sub CommandButton1_Click() みたいな感じにプロージャの外に出して使いまわすとか ma1_1(ByRef objie as Object) みたいな感じに引数として扱うようにすればいいんじゃないでしょうか。

kawamae1023
質問者

お礼

無事解決しました。 ありがとうございました。

その他の回答 (2)

  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.3

キーワード 変数のスコープ で調べましょう。

回答No.2

エラーの原因についてはこちらを参考にしてください。 http://pc.nikkeibp.co.jp/pc21/special/2007_gosa/eg5.shtml

kawamae1023
質問者

お礼

ありがとうございました。

関連するQ&A