VBAプログラム開発、スクレイピング・ログイン機能【2-1】VBAによるWebページログイン機能をどうやって作成するか検討する
本記事からは、機能拡張を検討していた時に上げていたログイン機能を取り上げます。
まずは作成に至る経緯からVBAコードによるログインを行う為の手順を検討します。
- 今回の目的
- なぜやるか
- やりたいこと
- やったこと
- 実施内容
- ログイン機能が必要なわけ
- 作成経緯
- 今までの対応
- ログイン処理方法を検討する
- ログイン機能作成時に何を考慮するか
- ログインするまでの画面を確認する
- ログイン画面表示をどうやって判断するか
- 作成内容をまとめる
- ログイン機能が必要なわけ
今回の目的
VBA操作によるWebログインをできるようにコード作成方法を検討する
なぜやるか
ログイン画面が表示されるタイミングを理解しておき、ログイン画面表示時のみログイン処理を実施できるようにするため
やりたいこと
- ログインするまでのWeb画面の流れを確認する
- ログインが必要な画面であることを確認する手段を検討する
- 上記内容によりどういう順番でVBAコードを書くかを考える
やったこと
- ログイン機能作成の必要性を確認する
- ログイン完了するまでの流れを確認する
- ログイン画面であることを判断する
- ログイン処理として作成するVBAコードの内容を決定する
VBAプログラム開発、スクレイピング・詳細データ取得拡張【1-7】書籍情報削除エラー対処を行う
書籍情報削除のVBAについて、Web側の書籍削除処理と削除結果をワークシートへ表示まではできました。
しかし、追加・削除を繰り返し試しながら作成する中で、削除時に失敗するケースを考慮できていませんでしたので対処をおこなっていきます。
- 今回の目的
- なぜやるか
- やりたいこと
- やったこと
- 実施内容
- 何が問題か
- 同じ処理をしてエラーが発生していた
- 存在しないページにアクセスしても削除はできない
- アクセス可否を判定する
- どうやってアクセス可否判定をするか
- HTTPリクエストとレスポンス
- レスポンスを確認する
- HTTPリクエスト取得処理をサブプロシージャ化する
- HTTPステータスコードによって処理分岐する
- セル指定コードをまとめる
- 最終動作確認をする
- 何が問題か
今回の目的
書籍情報削除時のエラー対処を行い、VBA動作を完了させる
なぜやるか
想定されるエラーを考慮したVBAコードとし、処理中断しないようにするため
やりたいこと
- 存在しない書籍IDを指定して削除処理するとエラーが発生することを解決する
- その他、Webアクセス時に問題が発生し、レスポンスが正常でない場合に対しての処理を追加する
やったこと
- 削除処理する書籍IDの結果パターンを確認する
- HTTPステータスコードを確認できるようにする
- HTTPステータスコードで処理分岐する
- レスポンスエラーとなったIDに対して結果を表示する
VBAプログラム開発、スクレイピング・詳細データ取得拡張【1-6】書籍情報削除結果を取得して表示する
登録処理は一端作成完了として、削除処理の機能を充実させます。
複数登録時に結果をワークシートへ表示させていたので、削除にたいしても削除結果を表示できるようにします
- 今回の目的
- なぜやるか
- やりたいこと
- やったこと
- 実施内容
- 削除時のWeb画面遷移を確認する
- 正常削除完了時
- 削除失敗時
- 削除結果の判定方法を検討する
- 書籍追加時はどうしたか
- 判定基準を考える
- 書籍削除処理を編集する
- 削除書籍フォームを修正する
- 書籍削除プロシージャを編集する
- 削除後のURLを確認する
- URL判断によって結果を通知する
- 削除時のWeb画面遷移を確認する
今回の目的
書籍削除時に削除結果を表示する
なぜやるか
削除ID指定して削除指示するのみとなっており、削除結果が一覧で表示されず、削除されているかどうかも判断できないため
やりたいこと
- 削除ID毎に結果をワークシートへ表示させる
やったこと
- 削除実施時のWeb側アクションを確認する
- 削除成功と失敗の判定をどうやって行うか検討する
- Web上で削除後に削除結果処理を追加する
VBAプログラム開発、スクレイピング・詳細データ取得拡張【1-5】上限を超える書籍を登録できるようにする
前回までにExcelワークシート上で登録したい書籍のISBNコードを読み取ってWeb書籍管理に登録し、結果をワークシートに出力するという処理を完成させました。
しかし、Web上の一括処理画面では一度に20件という制約を設けています。
Web側の設定を変更すれば一度にもっと登録できますが、今回はWeb側の制約は変更せずにExcel側で20件を超えるデータを扱える様にしていきます。
- 今回の目的
- なぜやるか
- やりたいこと
- やったこと
- 実施内容
- 入力欄を拡張する
- 全書籍登録にする手段を検討する
- 入力ISBNコードを認識させる
- カンマ区切りで登録フォームへ引き渡す
- Web登録上限を超えるデータを処理する
- 上限毎にカンマ区切りデータを生成する
- 作成したテキスト分登録を繰り返し実施する
今回の目的
Web登録上限を超える書籍情報を全て登録できるようにする
なぜやるか
Web側の制限毎に分割して繰り返し処理できるようにすることで、全書籍登録を実現するため
やりたいこと
- ワークシート上で登録したい書籍情報をまとめて管理する
- Web登録上限毎に分割して登録処理をする
- 登録結果をワークシートに反映する
やったこと
- 登録するISBNコード入力欄を拡張する
- 全登録を行う手段を検討する
- カンマ区切りテキストを上限毎に分割して作成する
- 分割したテキスト毎に登録処理を行う
VBAプログラム開発、スクレイピング・詳細データ取得拡張【1-4】書籍情報登録結果を取得して表示する
ISBNコードによる複数書籍登録をExcelVBAにて処理できるようになりました。しかし、登録結果はWeb上で表示されるのみであり、Web画面を消すと履歴としては残らないので、登録処理開始時にExcelワークシートへ記載したISBNコードに対して、処理結果を反映出来るようにしていきます。
- 今回の目的
- なぜやるか
- やりたいこと
- やったこと
- 実施内容
- 取得データを特定する
- 結果表示画面を確認する
- 取得データの場所を確認する
- 書籍登録結果のデータを取得する
- 登録ボタン押下後の画面表示待機を実装する
- 結果画面のテキスト取得を確認する
- 複数件取得対応する
- 書籍タイトルも表示させる
- 登録しましただけでは何が登録されたかが分からない
- レコード単位で処理できるようにする
- 取得データを特定する
今回の目的
書籍登録VBAに処理結果表示機能を追加する
なぜやるか
書籍追加のみで処理結果が不明になるため、結果が分かるように一覧表示化を行う
やりたいこと
- Web登録結果を取得する
やったこと
- 取得するデータを特定する
- 処理結果を表示する欄を設ける
- データが取得できることを確認する
- 全データを取得できるようにする
- 書籍タイトルもあわせて取得する