アスパLab

LesserScraping

LS000005_GoogleChromeでidを取得する

Webスクレイピングをするとき、Webシステム上のボタンを押したり、テキストボックスに値を入力したり、テキストを取得したりすとき、必ず操作の対象となる要素(Element)を指定する必要があります。このページでは「id」という要素を特定するための文字列をGoogleChrome(以下chrome)で取得する方法を説明します。
LesserScraping

LS000004_GoogleChromeでXPathを取得する

Webスクレイピングをするとき、Webシステム上のボタンを押したり、テキストボックスに値を入力したり、テキストを取得したりすとき、必ず操作の対象となる要素(Element)を指定する必要があります。このページではXPathという要素を特定するための文字列をGoogleChrome(以下chrome)で取得する方法を説明します。
LesserScraping

LS000003_マクロ(スクレイピング)の動作を一時停止させる

Webスクレイピングでは、ブラウザの読み込み待ち時間を考慮してマクロの動作を遅延させる必要があります。これまでIEでのスクレイピングをされていた方にとっては読み込み待ちの処理をページごとに考えないといけないというのはストレスだと思いますが、本家「SeleniumBasic」でも状況は変わらないので、GoogleChrome(以下chrome)でスクレイピングをしたいという場合、慣れるしかありません。
LesserScraping

LS000002_GoogleChromeを指定のURLへ遷移させる

スクレイピングではブラウザを起動したあと、操作対象となるWebページへ遷移をします。このページではExcelVBA(マクロ)で自動的に起動したGoogleChrome(以下chrome)を指定したURLへ遷移させる「NavigateTo」メソッドについて解説します。
関数リファレンス

F0000026_配列のコピーを作成する

このページタイトルである関数は使用しないでください。ExcelVBAには配列のコピーを作成する方法が用意されており、関数を経由する必要がありません。無駄な処理です。他のプログラミング言語を学習したことのある方にはご理解頂けるかもしれませんが、ExcelVBAを学び始めた当初の私は、配列⇒配列の代入は値のコピーではなく参照渡しであるとは思い込んでいました。ExcelVBAは配列を値で代入することができます。
LesserScraping

LS000001_GoogleChromeを起動する

「LesserScraping(レッサースクレイピング)」は初回起動時にGoogleChrome(以下chrome)の新規プロファイルを作成します。プロファイルを削除してから実行する場合も同様です。「LesserScraping」では新規プロファイルを作成した場合、そのままマクロの処理を終了します。このページではプロファイルの作成および「Start」メソッドを使用してchromeを起動する方法を解説します。
関数リファレンス

F0000025_配列の重複データを削除して返す

Excelの標準機能で「重複の削除」を利用したことがある人は多いと思います。私は常々データの扱いはセル上では行わず、変数や配列を使うことをおすすめしています。そのためシートやセル上でできることはすべて配列上で実行できるようにする義務が私にはあると考えています。そのために作った関数のひとつです・・・が、ExcelVBA(マクロ)上で重複を取り除くような処理は書き方も難しくなく、他の処理と並列して、例えばFormatでデータの書式を変更しつつ重複を削除していくというようなことができるため、単一の機能しか持たないこの関数の私の使用率はゼロに近いです。さらにいうと、重複を削除するだけという処理はExcelの標準機能として実装されており、わざわざ自動化するほどでもありません。一見便利そうに見える関数ですが未だ日の目をみることがない関数です。
関数リファレンス

F0000024_配列をcsv形式の文字列に変換する

ExcelVBA(マクロ)では、シートやセル上だけでデータを処理していると行数が増えるほどに実行速度の低下を感じると思います。また100万行を超えるデータを扱うとなると、シートではデータを保持しきれずどうしても、変数や配列といったデータを保持する方法を使用することになります。また例えば複数の顧客データを統合し出力するといった場合にも100万行を超える場合、シートに出力することができないためcsv等でデータを保存する必要があります(2024/08/21:最大1,048,576行)。この関数は配列に保持しているデータをcsv形式の文字列として出力します。この関数については特筆すべき点があります。それはその実行速度です。100万行を超えるデータであっても数秒~数十秒で処理が完了してしまいます。※PCスペックや列数に処理速度は影響を受けます。
関数リファレンス

F0000023_文字列から空白を取り除く

ExcelVBA(マクロ)では、高級なプログラミング言語と同様に文字列の操作をすることができる関数が用意されています。文字列操作で需要が高いのは文字列中の空白を削除する操作かと個人的に考えています。ユーザーからの入力を受け付けるときや、システムから抽出したデータを操作するときに、意図しない空白文字が含まれるということが少なからずあります。この関数はVBAの標準関数「Trim」では実現できない、文字列中に含まれつ空白を全消去できます。関数の中身はたった3行の非常に単純な内容ですが、この2行の入力の手間を省きたいという気持ちが、業務改善・効率化・品質向上の肝だと思います。
関数リファレンス

F0000022_配列を指定位置へ貼り付ける

ExcelVBA(マクロ)では高級なプログラミング言語とは異なり最初からブックやシートが用意されています。そのためデータをセル上でのみ扱ってRPAツールを作成することも可能です。しかし、大量の顧客データなどをすべてセル上で処理すると、目に見えて実行速度が低下します。画面更新を停止するなどの改善策もありますが、一番のおすすめはデータは変数や配列で扱うことです。すでに紹介済のシート内の指定した表を配列で取得する(F0000007)関数でデータを取り込むことができます。加工や集計を実施した後、このデータをcsvファイルなどにエクスポートすることもできますが、元の位置に貼り付けたい場合もあります。このページで紹介する関数では配列のデータをシートの指定位置へ貼り付けることができます。
スポンサーリンク