文字の編集(CSVファイルをADOで扱う⑨)

CSVファイルをADOで扱う連載の9回目です。前回の記事はこちらになります。

hirocom777.hatenadiary.org

文字の編集

 前回は、SQLを指定してCSVファイルを確認できるツール(CSV_ReaderSQL)で読込と文字を変換してみました。前回の計算と同様に、色々なことに応用できます。

f:id:HiroCom777:20210814125450j:plain

今回は前回に引き続き、文字データを扱います。文字データを読み込みと同時に編集してみましょう。ツールは以下からダウンロードしてください。

CSV_ReaderSQL110.zip - Google ドライブ

文字を編集する

今回は、ファイル名'Test.csv'の内容を設定して。色々編集してみましょう。今までと同じようにCSV_ReaderSQLで'Test.csv'があるフォルダーを指定しておきましょう。

前後の空白をなくす

CSVデータの中には文字列の前後にスペースが入っているデータがあったりします。そのままで問題なければいいのですが、空白は削除しておきたい場合があります。'Test.csv'が以下の内容であったとします。

"ID","Item"
"1","Banana juice      "
"2"," Orange juice "
"3"," Apple juice"

果物の名前の前後に余計なスペースが入っています。この空白を削除してみましょう。SQLコマンド欄に以下を入力して実行ボタンを押します。

  SELECT ID,TRIM(Item) As Item FROM [Test.csv]

結果は以下の様になりました。

ID Item
1 Banana juice
2 Orange juice
3 Apple juice

前後のスペースがなくなっています。 TRIM は文字列の前後の空白を削除します。表記方法は以下の通りです。

  TRIM(文字列式) 

文字列先頭の空白のみ削除したい場合は LTRIM 。文字列終わりの空白のみ削除したい場合は RTRIM を使用するといいでしょう。

置換して読み込む

読み込んだ内容の指定した文字データを任意の文字に置換できます。先の'Test.csv'に修正が追加されたとします。Item内の'juice'を'Juice'に修正しなければなりません。文字列の途中ですので前回ご紹介した STRCONV が使えません。この場合は、SQLコマンド欄に以下を入力して実行してみましょう。上記で実行した前後の空白削除と一緒に処理します。

  SELECT ID,REPLACE(TRIM(Item),"juice","Juice") As Item FROM [Test.csv]

結果は以下の様になりました。

ID Item
1 Banana Juice
2 Orange Juice
3 Apple Juice

ちゃんと変換されています。前後の空白も削除されています。 REPLACE は文字列内の指定文字列を置換文字列に変換します。表記方法は以下の通りです。

  REPLACE(文字列式,指定文字列,置換文字列) 

また、今回の様に他の変換結果を置換対象にすることもできるので複雑な処理を簡単に書けて便利です。

表示形式を変える

読み込んだ文字データの表示形式を変更することもできます。今度はIDの表記を変えてみましょう。頭に'0'をつけて、数字3文字の表記にします。'1'が'001'という表記になります。SQLコマンド欄に以下を入力して実行してみましょう。今回も上記で実行した内容と一緒に処理します。SQLコマンド欄に以下を入力して実行してみましょう。

  SELECT FORMAT(ID,"000") As ID,REPLACE(TRIM(Item),"juice","Juice") As Item FROM [Test.csv]

結果は以下の様になりました。

ID Item
001 Banana Juice
002 Orange Juice
003 Apple Juice

ちゃんと変換されています。 FORMAT は値を指定した書式で変換します。表記方法は以下の通りです。

  FORMAT(値,書式) 

書式の指定方法は多岐にわたり、今回使用した"0"は、桁数を指定したいときなどに使用します。

次回はFORMATの書式指定

前回と今回で文字データの扱い方をご紹介しました。前回少しお話したのですが、今回もVBAで使う関数と使い方は同じです。学習しやすいと思います。さて、最後にご紹介した FORMRT なのですが、書式の指定方法は結構奥が深いです。 次回にご紹介したいと思います。お楽しみに!!

hirocom777.hatenadiary.org

CSVファイルをADOで扱う連載記事はコチラからどうぞ