アスパLab

関数リファレンス

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ファイルの絶対パスを取得することができます。
関数リファレンス

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

支店や営業所に対し指定のフォーマットのExcelを配布し入力・提出してもらう場合や、各月や各四半期ごとのファイルの比較などをする場合、複数のExcelファイルを結合したり、集計したりといった処理が必要になるかと思います。ファイルダイアログは、複数ファイルを選択することも可能です。ここで紹介する関数は、ファイルダイアログを表示しマクロの実行者が選択した複数のExcelファイルの絶対パスを取得することができます。
関数リファレンス

F0000018_ファイルダイアログを開き、1つの任意のファイルを選択させる

ExcelVBA(マクロ)でマクロ実行者に選択させるファイルの種類として多いのはExcelもしくはcsvファイルかと思います。ファイルの選択を求める場合、なるべくファイルの拡張子を指定することが望ましいです。しかし、自社のシステムからデータを抽出・ダウンロードし、そのファイルをマクロに取り込み加工・出力するような場合、自社のシステムから抽出できるファイルの拡張子がExcel/csvで選択できるような場合があります。この場合、マクロの設定で選択できるファイルを制限する手もありますが、システムからのデータ抽出には時間がかかる場合もあり、拡張子の選択を間違えたために再度データ抽出からのやり直しを求めるようでは、RPA(自動化)ツールの名が廃れます。そのため、Excelでもcsvファイルでも同じ出力となるツールの設計をすべきだと私は考えています。この関数はファイルダイアログを表示しマクロの実行者が選択した任意のファイルの絶対パスを取得することができます。
関数リファレンス

F0000017_ファイルダイアログを開き、1つのcsvファイルを選択させる

業者間のデータ連携や自社の基幹システムへのデータインポートなど、業務においてExcelファイルではなく、データをcsvファイルで扱うことはよくあります。この時、Excelデータをcsvファイル形式で保存しただけのデータではエラーが発生したり、開発した当初はシステムから出力できたcsvファイルをそのまま使えたのに、先方の仕様変更で手動で加工をしてから連携が必要だったりすることがあります。ExcelVBA(マクロ)の利点は、システム開発よりも低コスト・短納期で高級なプログラミング言語で作成されたツールに劣らない自動化ツールを作成できることです。私の経験上、csvファイルの加工はその最たる例です。この関数はファイルダイアログを表示しマクロの実行者が選択したcsvファイルの絶対パスを取得することができます。
関数リファレンス

F0000016_ファイルダイアログを開き、1つのExcelファイルを選択させる

私がExcelVBAを業務に使用し始めた頃、ExcelVBA(マクロ)の学習を進めていく中で最初の難所は「別ブックの操作」でした。当時、マクロの記録では別ブックを開きそのまま操作を進めるという処理が記録されませんでした。そのため「Workbooks.Open」へたどり着くまで単一のブックしかマクロで扱うことができないと誤認していました。この「Workbooks.Open」はブックのパスを指定してブックを開くことができます。ここで紹介する関数では、ファイルダイアログを表示しマクロの実行者が選択したファイルの絶対パスを取得することができます。
関数リファレンス

F0000015_マクロ実行者のダウンロードパスを取得する

ExcelVBA(マクロ)の出力結果の保存先をダウンロードフォルダに設定するとどこかからダウンロードされたような演出をすることができます。また、あなたの所属する会社の設定によってはダウンロードフォルダの保存期限が設定されており、一定期間アクセスのないファイルが自動削除されるようになっているかもしれません。また、デスクトップが散らかっており、単純な消去法として保存先をダウンロードフォルダにした方が都合がいい場合もあるかと思います。この関数では、マクロ実行者のダウンロードフォルダのパスを取得できます。
関数リファレンス

F0000014_マクロ実行者のスタートアップパスを取得する

スタートアップフォルダに実行ファイル(.vbs等)を格納しておくとPCが起動したときに自動的に実行されます。ExcelVBA(マクロ)では、テキストファイルを加工して、任意のファイル名で任意の場所に保存ができます。保存先をスタートアップフォルダ・ファイル名を「~.vbs」で保存すれば、PC起動時に自動実行される実行ファイルをExcelVBAで作成し保存することができます。この関数では、マクロ実行者のスタートアップパスを取得できます。
スポンサーリンク