VBAプログラム開発、スクレイピング・詳細データ取得拡張【1-3】ISBNコード複数件をWebの書籍情報へ登録する
書籍情報の1件登録及び複数件削除まで作成できました。
今回は複数の書籍をまとめて登録できるようにします。
- 今回の目的
- なぜやるか
- やりたいこと
- やったこと
- 実施内容
- ISBNコード登録を複数件登録へ拡張する
- どうやってVBAコードを作成するか
- フォームに引き渡すISBNコードを生成する
- ワークシート上のデータをカンマ区切りテキストにする
- フォームにカンマ区切りテキストを入力する
- ISBNコード登録を複数件登録へ拡張する
今回の目的
複数の書籍を一度のアクションでまとめて登録できるようにする
なぜやるか
復習書籍登録フォームがWeb上で作成されているので、利用して簡単にまとめて登録できるようにするため
やりたいこと
- 登録する書籍のISBNコードをワークシートから読み取る
- 複数書籍登録用に加工する
- Web操作で登録処理を実施する
やったこと
- 作成手法を考える
- 登録するISBNコード入力欄を用意する
- 入力されたISBNコードを認識させる
- カンマ区切りテキストを生成する
- フォームに反映してWeb上で書籍登録させる
VBAプログラム開発、スクレイピング・詳細データ取得拡張【1-2】Excel上で指定した書籍をWeb上データから削除する
前回はVBAを利用してワークシートのデータをWebに登録する工程を作成しました。
しかし、ISBNコード1件のみしか対応していないため複数件のデータに対応させます。
しかししかしその前に、複数件登録を作成する前にVBA操作によるデータ削除を先に実装することにしました。
何度も登録の度に新しいISBNを見つけて登録も大変なので、先に削除処理を作成しておき、繰り返し登録実験できるようにしていきます。
- 今回の目的
- なぜやるか
- やりたいこと
- やったこと
- 実施内容
- どうやって削除するか
- 書籍管理Webからデータを削除するには
- 削除のながれをどうするか
- 書籍情報削除VBAを作成する
- ID指定による削除書籍選択
- 削除書籍ページへアクセスする
- 削除動作を追加する
- 複数件書籍に対応させる
- 繰り返し条件を追加する
- 削除ID取得を複数件対応させる
- 複数ID削除を実行する
- 実際に動作させる
- どうやって削除するか
今回の目的
登録されている書籍情報をVBAによって削除できるようにする
なぜやるか
やりたいこと
- ワークシートで指定した書籍をVBAによって削除する
- 複数削除できるようにする
やったこと
- どうやって削除するか検討する
- 削除書籍ページへアクセスする
- 削除を実行する
- 複数削除に対応する
VBAプログラム開発、スクレイピング・詳細データ取得拡張【1-1】Excel上に入力したISBNコード1件をWebの書籍情報登録をする
拡張項目として上がっていた、Excel上に入力したISBNコードをVBAで認識させ、Webフォームを経由して書籍を登録できるようにしていきます。
まずは、ISBNコード1件をWeb反映できるようにします。
- 今回の目的
- なぜやるか
- やりたいこと
- やったこと
- 実施内容
- どうやってフォームを扱うか
- フォーム操作してISBNコードを登録する
- ベースとなるコードを準備する
- 入力フォームを指定してテキストを引き渡す
- 登録ボタンを動作させる
- 登録可能なISBNコードを指定する
- 任意のISBNコードを指定して登録できるようにする
今回の目的
VBA操作によってWeb新規登録フォームを利用してデータ登録を実施する
なぜやるか
VBAによる自動化で書籍登録をできるようにするため
フォーム操作できるようになることで、他の内容でも扱える様に手順習得するため
やりたいこと
- Webフォームを操作してExcelからデータ送信できるようにする
やったこと
- Web操作用のベースコードを用意する
- HTMLから操作するフォームを特定する
- Webフォーム操作ができることを確認する
- ワークシート上のデータを送信する
VBAプログラム開発、スクレイピング・詳細データ取得の拡張を検討する
書籍情報と所有書籍を保存しているWebアプリからスクレイピングによって書籍情報をExcelワークシートへと出力するVBAの基本処理としては作成完了しました。
今回からは、いくつか拡張をしてみたいと思っている内容を実施していきます。
主に実施してみたい内容はこちらです。
- 新しい書籍情報のISBNを入力しておき、webフォーム経由で登録できるようにする
Webからデータ取得はできているので、ExcelにISBN番号を記入してVBAでWebフォームを経由してデータを登録できる仕組みを用意する。登録結果もExcel上で見られるようにするかも検討です。
また、登録できるなら、削除するパターンも実施してみたいところです。
- ログイン処理の自動化
今回のWebサイトはログイン必須です。タイムアウトすると再びログインが必要です。
今までは手動でログインして、ログインした状態からVBAを動作させていました。
未ログイン状態であればログイン画面に遷移するので、これを何かで検出して自動ログインする機能を実装してみたいところです。
上記のwebフォーム操作ができれば作成できるかもしれません。
- Excel取得済みデータ判定
今までのVBAは毎回Webにアクセスして全データを取得しています。重複があっても毎回全データを反映します。Excel出力開始セルも固定となっているので、既にデータがある場合は上書されます。
Excel反映済みデータのスキップと、新規データは一番下の行に追加できる仕組みがあると、より使い勝手の良い物になるでしょう。
- 所有書籍情報を扱う
書籍情報の取得はできているので、同様に所有書籍についてもデータをExcelへ出力できるようにします。
基本構造は同じなので、クラス名等を変更すれば作成可能と考えています。
以上の内容を中心にVBA化してみたいと考えています。
VBAプログラム開発、スクレイピング・データ要素を充実させる【6】コレクションを利用して、複数のデータを扱う
書籍一覧情報から詳細ページURLを収集し、詳細ページ内の情報をExcelワークシートへ出力という一連の処理ができました。
しかし、詳細ページURLは一度ワークシート上に保存していました。あくまで一時的に保存して処理させていたのですが、最終的に不要であればワークシートには表示させずに処理できるようにしたいです。
これを最後に実施して、データ要素を充実させる項目としては終わりにしたいところです。
- 今回の目的
- なぜやるか
- やりたいこと
- やったこと
- 実施内容
- 詳細ページURL収集方法を確認する
- 複数の情報を扱う変数を用意する
- 配列を使う方法を検討する
- コレクションを使う
- コレクションを利用して複数要素をコントロールする
- コレクションを利用してデータを格納する
- コレクション変数にデータが格納されていることを確認する
- コレクション変数から値を取り出す
- 動作確認する
- コレクション変数設定後に全て正常に完了することを確認する
- 詳細ページ情報取得ループ設定を確認する
- 現在のコードでループ動作を確認する
- ループ終了の条件を修正する
- 繰り返し条件変更に伴う考慮を行う
- URLCol()にデータがない場合の処理が必要
- URLCol()の件数による処理分岐を行う
今回の目的
URL情報をVBA上の処理だけで扱う
なぜやるか
ワークシートに保存する情報は書籍情報のみであり、参照元として収集するURL情報は保存しないため、メモリ上で処理だけが実施できるようにするため
やりたいこと
- 複数のURLデータを格納できる変数を用意する
- 格納した情報をから繰り返し詳細ページにアクセスできるようにする
やったこと
- 現状のURL情報の扱い方を確認する
- 複数データを扱える方法を確認する
- コレクションを利用する
- コレクションを利用したコードに変更する
- 取得URLがなかった場合を考慮する