🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

1回答

460閲覧

AccessでIEを利用した、巡回システム

NUema

総合スコア4

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

1クリップ

投稿2019/10/22 00:34

ACCESSで、WEB巡回は可能なのでしょうか?

Excel-VBAでの情報収集(WEB使用)データベースへの繁栄は可能なのですが、
Accessでは、ページの表示読み取りはできるももの、Documentに関しての情報が
できないようです。

多数のエラー。

該当のソースコード

Objectを選択するにも、Documentに反映されないため、
情報を得ることができません。

各種対応できるものを入れてみました・・・・・・

試したこと

htmlとobjIE での動的モーション

補足情報(FW/ツールのバージョンなど)

IE11
Access2016

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Y.H.

2019/10/22 02:03

> 多数のエラー。 エラーが発生した順に10個程度で良いので質問に記載ください。 「なんかいっぱいエラー出てるので助けてください」だけでは回答のしようがありません。
guest

回答1

0

AccessでもExcelでも、VBAに変わりはないので、Excelの場合とまったく同じコードで実行できるはずです。

できないとしたら、IE関係の参照設定がExecelと同じになっているか確認してみてください。

Microsoft HTML Object Library
Microsoft Internet Cintrols

投稿2019/10/22 01:22

hatena19

総合スコア34073

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

NUema

2019/10/22 01:29

回答ありがとうございます。 参照設定も同じようにチェックはいっております。。。。
hatena19

2019/10/22 02:06

現状のコードをコピーしてエクセルのVBEに貼り付けて実行した場合は、正常に実行されるのですか。 現状のコードを質問に追記してもらえますか。そして、具体的にどのコードでどのエラーがでるかの詳細を提示してもらえますか。
NUema

2019/10/22 02:47

Excelでは同じ内容でも動きました。 ただ、ACCESSですと 情報が得られない事項が多く、html fileと。objIEに分割して取得しようと試みましたが、 重要なDocumentがえられないまま帰宅してしまいました。 エラー情報もメモしておきます。よろしくお願いいたします♪ 明日また、会社に戻るので 詳細はまたアップします。
NUema

2019/10/23 10:26

以下がExcelでのデータですが、このまま入れてもできないのはわかります。 セルの縦横も指定できないですし・・・・ ドキュメントを指定ができないことで、どうにもなりません。 巡回用ですが、ダウンロードもDBも積んでいてそのDBが最終アクセスに入るので accessでの処理を考えました。 タグごとにDIM打っていかないとだめなんでしょうか・・・・ そうなると、aタグの場合はどうすればいいのか・・・・ 前に進めど悩んでいます。 For i = 7 To ws.Cells(Rows.count, 2).End(xlUp).Row If ws.Cells(i, 30).Value = "" Then '表示行スクロール If i - 20 < 7 Then ActiveWindow.ScrollRow = 7 Else ActiveWindow.ScrollRow = i - 20 End If 'コードが変更されたら支社切替実施 info = objIE.document.all("information_line").innerText scd = Mid(info, InStr(info, "(") + 1, 3) If ws.Cells(i, 2) <> scd Then objIE.document.getElementById("DTO-SSY_CD").Value = ws.Cells(i, 2) Call IEButtonClick(objIE, "切替実行") Call IEWait(objIE) End If ' Call IEButtonClick(objIE, "選択") Call IEWait(objIE) End If '検索ボタンを押す Call IEButtonClick(objIE, "検索") Call IEWait(objIE) 'エラーの有無を判定 If objIE.document.getElementsByClassName("error_eye_catch").Length <> 0 Then ' エラーメッセージ有りの場合 If objIE.document.getElementsByClassName("error_eye_catch")(0).innerText = "!!" Then ws.Cells(i, 31) = objIE.document.getElementsByClassName("message")(0).innerText ws.Cells(i, 30).Value = "不可" GoTo L10 Else End If Else End If L20: '変数mに0を代入 変数mは、<a>タグ内に書き込まれている物を検索するために使用 m = 0 'データ回転の回数を指定 arrayData = Array(1) '--------------------------------------------------------------------------------------- '各オブジェトから、<a>,<tr>,<td>の範囲を巡回し、obj3内に格納しエクセルシートに張り付ける '--------------------------------------------------------------------------------------- For Each obj In objIE.document.getElementsByTagName("table").arrayData For Each anchor In objIE.document.getElementsByTagName("a") Debug.Print anchor.innerText If InStr(anchor.innerText, "次へ") > 0 Then m = 1 Sleep 100 '<a>内から”次へ”が検索された場合に数値mを代入する Exit For End If Next 'trタグを変数objにセット For Each obj2 In objIE.document.getElementsByTagName("tr") '行カウンターを1アップ j = j + 1 k = 0 Debug.Print IElink.innerText(objIE, "次へ") For Each obj3 In obj2.getElementsByTagName("td") k = k + 1 dbs.Cells(j, k).Value = obj3.innerText '======================================================= ' If dbs.Cells(j, k).Value = obj3.innerText Then ' 'タグのテキストをセルにセット ' Exit For ' Exit For ' Else ' dbs.Cells(j, k).Value = obj3.innerText ' GoTo L30 'Else 'dbs.Cells(j, k).Value = obj3.innerText ' End If '======================================================= Next 'Sleep 100 Next 'Sleep 100 Next ' If IELinkClick(objIE, "次へ") = "次へ" Then If m = 1 Then Call IELinkClick(objIE, "次へ") Call ie.Check(objIE) Call IEWait(objIE) GoTo L20 Else Call IEWait(objIE) End If '---------------------------------------------------------------------------------------
hatena19

2019/10/23 10:44

質問は編集できますので、コードは質問に追記してください。コードはマークダウンのコードタグで囲んでください。
hatena19

2019/10/23 10:47

ひょっとして、Access のテーブルに書き込む方法が分かっていないのですか。 だとしたら、下記辺りを参考にDAOについて学習してください。 Access VBA DAOを使用したレコード追加 http://www.access-vba-navi.com/post-46/
NUema

2019/10/23 11:17

一応 DAOでも入れておりますが 現状可能そうなのが、タグごとの呼び出しです。 DAOももう一度やってはみますが、、、
hatena19

2019/10/24 00:52

まずはやってみて、エラーが出たら、そのコードを質問に追加して、どの行でどのようなエラーが出たのか提示してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問