関数リファレンス

関数リファレンス

F0000031_文字列をShift-JIS形式のテキストファイルとして保存する

ExcelVBA(マクロ)を使用して業務の効率化をする場合、最も簡単で効果が大きい開発の一つがcsvファイルの加工です。条件分岐や繰り返し処理、テキストデータの入出力が理解できれば取引先企業のフォーマットに沿ったデータ作成や、自社のシステムに取り込むためのデータ加工といった処理は簡単につくることができます。この関数は文字列データをShift-JIS形式のテキストファイルとして出力(保存)することができます。
関数リファレンス

F0000030_csv形式の文字列を配列へ変換する

ExcelVBA(マクロ)でcsvデータを加工するとき、単純にExcelで開いてしまうと「"(ダブルクォーテーション)」が消えてしまったり、数値データの先頭の0が消えたりしてしまいます。そのためテキストデータをシートを介さず変数に取り込み加工をするとデータを破損させずに済みます。また、置換処理程度であれば文字列変数上の操作で足りますが、データをレコードとカラムに分解して、条件によって加工内容を変化させるというような場合は、csvデータを配列に取り込むと操作が楽になります。このページで紹介する関数は、csv形式の文字列を配列に変換します。
関数リファレンス

F0000029_Shift-JIS形式のテキストファイルを読み取り、文字列で返す

この関数についてExcelVBA(マクロ)で作成される自動化プログラムの中で最も需要が高い開発案件のひとつはcsvファイルデータの加工や作成です。取引先とのデータのやりとりにcsvファイルを使っていて、届いたデータを加工してから基幹システム...
関数リファレンス

F0000028_UTF-8形式のテキストファイルを読み取り、文字列で返す

ExcelVBA(マクロ)で作成される自動化プログラムの中で最も需要が高いもののひとつはcsvファイルデータの加工や作成です。取引先とのデータのやりとりにcsvファイルを使っていて、届いたデータを加工してから基幹システムへ取り込むといった作業はお手軽に効率化ができる手作業です。テキストファイルは、特定の文字コードでデータが保存されています。この関数は文字コードがUTF-8であるテキストデータをマクロ内で操作可能なString型の文字列として取得します。
関数リファレンス

F0000027_配列を指定した添え字の昇順で並び替える

ExcelVBA(マクロ)で配列を並び替える方法をしらべると「Sort」メソッドを使いましょうという記事が出てきます。たしかに、ある一定までの件数を処理する分は十分な機能です。しかし、Excelという制約上100万行を超える配列の処理はできません。その限界を突破するために作成した関数です。
関数リファレンス

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

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

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ファイルなどにエクスポートすることもできますが、元の位置に貼り付けたい場合もあります。このページで紹介する関数では配列のデータをシートの指定位置へ貼り付けることができます。
スポンサーリンク