コーディングとは

VBAを使用してテキストを解析して使用可能なデータにする方法

VBAを使用してテキストを解析して使用可能なデータにする方法

新規および経験豊富なExcelユーザーには、他のドキュメントのデータが表示されることが多く、これらのデータは扱いが難しい場合があります。通常、この情報はスプレッドシートに適した形式ではないため、Excelまたは適用可能なVBAコードが理解する前に解析する必要があります。

おそらくあなたは名前のリストを与えられており、姓を区別する必要があります。すべての名前が一貫して表示されるとは限らないことに気付くまで、これは簡単な仕事のように聞こえます。ミドルネームまたはイニシャルが付いているものもあります。

ピーター・スミス
ジョン・レスリー・グラハム
ヘクター・ロドリゴ
ビクトリア・リリ・マーティン
リリアン・F・パーマー

Excelの標準のテキストから列へのツールでは、最適なソリューションが得られない場合があります。各エントリの名前の数が不均一であるため、Excelはどちらが姓であるかを認識できず、別の列に表示できません。

カスタマイズされたソリューションを提供するために、数行のコードを作成します。コードは、追加の名またはイニシャルに関係なく、姓を分離します。

各テキストエントリの一貫性を特定する

テキストの変換または解析の鍵は、テキスト全体の一貫性を識別することです。コンピューターは予測可能性を好むため、データを処理するプログラムを簡単に作成できます。この例では、次の一貫性が発生します。

各単語間のスペース区切り文字
最初の単語は常に名です
最後の言葉は常に姓です
姓はスペースで区切られているため、これにより、単純な配列を使用して姓を簡単に分離できます。

range( “a1″)。currentRegion.select
選択した各cについて

‘スペースで区切られた配列を作成する

fullName = split(c.value、 “”)

‘姓は配列の最後の項目です

lastItem = ubound(fullName)

lastName = fullName(lastItem)

このコードは、フルネームをスペースで区切られた配列に変換するため、配列の最後の項目は姓でなければなりません。同じテクニックを使用して名を分離し、ミドルネームも少し創造的に識別できます。ただし、差し込み印刷の作成などの一般的な目的には、姓と名だけで十分です。

1つの問題は、セルエントリの末尾に余分なスペースがあり、コードが空のテキスト文字列になる配列に余分な項目を割り当てる場合です。この場合の解決策は、セル値に対してTRIM関数を使用し、セル値全体の両端のスペースを削除することです。

fullName = split(trim(c.value)、 “”)

‘残りのコード
概要

この短いコードは、Excelに付属している標準ツールの制限の良い例です。 VBAプログラミングの少しの知識とあなた自身の常識を組み合わせることで、仕事の生産性が格段に上がります。

Andy L Gibsonは、以前のWebサイトプログラマであり、中小企業向けのソフトウェアアプリケーションへの関心を再発見しました。以前は、AJAX、XML、およびASPXを使用して、レストラン、競売所、Heath AuthoritiesのWebサイトをプログラミングしていました。彼は、質問に答え、ビジネスチャンスがどこにあるとしても探求したいと考えています。

Comment here