daichi005

トラブルシューティング

T0000010_Outlookで送信遅延の設定をする

個人情報漏洩のリスクの高まりによって、添付ファイル付きのメール送信に制限がかかっている会社は多いです。制限のかけかたはそれぞれですが、添付ファイルの相違・宛先の相違による誤送信を防ぐには送信遅延(送信ボタンを押してから実際に送信されるまでに時間を空けること)が有効です。あまり知られていませんが、送信遅延の設定は会社システムの管理者ではなく、各個人で設定することができます。参考:誤送信の半分は10分以内に気づく?このページではクラシック版のOutlookでの操作方法について説明します。
トラブルシューティング

T0000009_Google Chromeをバージョンダウンする(Windows)

スクレイピングには一般的にWebDriverが必要です。chromeの操作を自動化するツールを作成するにはchromeのバージョンに合ったchromeDriverをダウンロードする必要があります。chromeDriverはchromeのバージョンアップを追いかける形で随時開発が続けられています。chromeDriverの自動アップデートツールなどもあるため、chromeDriverのバージョンを意識する機会は少なくなっているかと思います。しかし、セキュリティ上の理由などによってchromeが緊急アップデートされた場合は、この限りではありません。chromeは組織に管理されていない限り、原則自動アップデートが実行され、ひとたび自動アップデートが始まるとそれを止めるすべはありません。この時、最新のchromeに対応するchromeDriverがなく、自動アップデートがかかった結果これまで使えていたスクレイピングツールが使用できなくなるということは十分にあり得ます。このページでは、アップデートされてしまったchromeをバージョンダウンする方法について説明します。なお、下記操作にはPCの管理者権限が必要です。組織にchromeのバージョンを管理されている方は実施できませんので、悪しからず。また、アプリのアンインストールに伴って必要なデータまで誤って削除してしまうなどのリスクがあります。バックアップをとったり、覚悟を決めるなどして自己責任で実施してください。
トラブルシューティング

T0000008_Google Chromeのバージョン自動更新を停止する(Windows)

スクレイピングには一般的にWebDriverが必要です。chromeの操作を自動化するツールを作成するにはchromeのバージョンに合ったchromeDriverをダウンロードする必要があります。chromeDriverはchromeのバージョンアップを追いかける形で随時開発が続けられています。chromeDriverの自動アップデートツールなどもあるため、chromeDriverのバージョンを意識する機会は少なくなっているかと思います。しかし、セキュリティ上の理由などによってchromeが緊急アップデートされた場合は、この限りではありません。chromeは組織に管理されていない限り、原則自動アップデートが実行され、ひとたび自動アップデートが始まるとそれを止めるすべはありません。この時、最新のchromeに対応するchromeDriverがなく、自動アップデートがかかった結果これまで使えていたスクレイピングツールが使用できなくなるということは十分にあり得ます。このページでは、chromeの自動アップデートを停止させる最も簡単な方法について説明します。なお、下記操作にはPCの管理者権限が必要です。組織にchromeのバージョンを管理されている方は実施できませんので、悪しからず。
関数リファレンス

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

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

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

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

T0000007_別のパソコンだとExcelの印刷範囲がずれてしまう問題への対処

Excelを使って請求書や納品書などの帳票を作成した経験のある方は少なくないと思います。印刷用にページレイアウトから印刷範囲を設定し自身のPCでは何度やっても問題なく動くのに、同僚のPCではうまく動く人と動かない人がいる・・という経験はないでしょうか?ExcelのレイアウトはPCに依存する部分が多く、PCの設定の違いがレイアウトの崩れを引き起こしている可能性があります。このページでは印刷範囲のずれが起きる原因のひとつであるパソコンのディスプレイ設定の変更方法について説明します。なおここで説明する内容は解決策の一つであり、私のExcelVBA(マクロ)開発の経験上、Excelのレイアウト問題についてこれをやればすべて解決!・・という方法はありません。今回は解決策のひとつとしてPCのディスプレイ設定の変更方法を紹介しますが、Excelのバージョンの違いによってもレイアウトの崩れは発生します。Microsoft社もExcelのバージョンの違いによるレイアウトの崩れは仕様として認識しているようです(私の所感ですが)。そのため私は、帳票を作成するツールとしてExcelやExcelVBA(マクロ)を利用することをおすすめしません。以上をご理解の上、お読みください。
関数リファレンス

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

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

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

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

F0000021_ファイルダイアログを開き、複数の任意のファイルを選択させる

csvファイルを開くときのアプリケーションとしてデフォルトでExcelを選択している方は多いです。私のツールのユーザーを見ると、Excelとcsvとは同じデータだとして扱っている方が多いように感じます。例えば、基幹システムからデータ抽出するときにファイル形式をcsvかExcelかを選択できる会社があるとして、基幹システムから抽出したデータをExcelVBA(マクロ)に読み込み、加工・集計するというRPAツールを考えるとき、開発者である皆さんはcsvとExcelは明確に別物であると理解しているため、「csvファイルを選択する」よう説明文を入れればユーザーは素直に指示に従ってくれるように思うかもしれません。しかしそんなことはありません。「csvファイルのみ」という制限は理解されず、ファイルが表示されないという問い合わせを生みます。最初からcsvファイルもExcelファイルも選択できるように設計することがベターです。前置きが長くなりましたが、この関数はファイルダイアログを表示しマクロの実行者が選択した複数のファイルの絶対パスを取得することができます。
関数リファレンス

F0000020_ファイルダイアログを開き、複数のcsvファイルを選択させる

基幹システムからデータ抽出すると数万レコードごとにファイルが分割して抽出されたり、取引先業者から送られてくるファイルが支店ごとに分割されていたり、フォーマットが同じにも関わらずファイルが分割されており、手動でくっつけるといった作業をしていないでしょうか?ExcelVBA(マクロ)を使えば複数のcsvファイルを結合して出力するということも簡単に実現できます。この関数はファイルダイアログを表示しマクロの実行者が選択した複数のcsvファイルの絶対パスを取得することができます。
スポンサーリンク