Excelで扱うCSVファイル

右端の1文字を削除する

全334コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
カンマで区切られた1行分のデータを生成するとき、末尾の余計なカンマを削除する考え方と方法を解説します。
講師:
05:10

字幕

このレッスンでは右端の1文字を削除する考え方を解説します。ワークシートに入力したデータをCSV のデータとして出力するにはセルに代入されている値とカンマを& 演算子で結合する処理が必要になります。1つ1つのセルをカンマと結合しても良いのですがそれでは列が多くなるとコードが煩雑になります。従ってそういう時は For Next を使って繰り返し命令を使うのが一般的です。例えばこの様にA 列・B 列・C 列のデータをCSV データに変換するのならこうしたシンプルなコードで実現できます。しかし、このコードには1つ問題があります。実行してみると、セル C1 で入力されている 100 の後ろにもカンマが結合しているということです。これは CSV のデータとしては不適切ですね。従ってこのコードで作成した文字列から右端の1文字つまり余計なカンマを削除しなければいけません。それはどのように考えれば良いのでしょう。右端の1文字を削除するというのはどういうことか考えてみます。例えば ABCDX という5文字の文字列があったとします。ここから右端の1文字つまり X を削除するということは、左から4文字を抜き出せば良いということですね。 文字列の左から指定した文字数分の文字を抜き出すにはLeft 関数を使います。例えばこんな感じです。Left 関数、元の文字列2番目の引数に文字数である 4この様に指定すれば、結果的に右端の一文字を取り除いたことになります。さて、ここで指定している4 とは何でしょう。これは全体の文字数から1 を引いた数ですね。つまり Left 関数の2番目の引数に全体の文字数から1 を引いた数を指定できれば文字数の右端の一文字を消すことが可能だということです。VBA には文字列の文字数を数える関数があります。Len 関数です。Len 関数を使うと全体の文字数がわかります。従って Len 関数の結果から1 を引いたものそれを Left 関数の2番目の引数に指定する。これによって文字列の右端の1文字を削除することができるということです。先程の VBA のコードにこれを追加すると、こうなります。カンマを結合した文字列は変数 buf に入っていますのでLeft 関数で左側を抜き出します。何文字抜き出すかはLen 関数の結果 -1 です。ではこのマクロの動作を確認してみましょう。Chapter03 の Output.xlsm を開きSheet1 を開いて下さい。 まず VBE を起動します。「開発」タブを開き、左端の「Visual Basic」ボタンをクリックします。実行すると VBE が起動します。ここでは「標準モジュール」の「Module3」をダブルクリックして下さい。アクティブシートのセル A1 B1 C1 をそれぞれカンマと結合して変数 buf に格納しています。メッセージボックスで画面に表示するのですがその前で、右端の1文字つまり要らないカンマを削除しています。コードを読んで動作をイメージしたら実行してみましょう。ツールバーの「Sub/ ユーザーフォームの実行」ボタンをクリックします。実行すると3つのセルにカンマが結合されて更に最後の余計なカンマも表示されていません。後はこのデータを CSV として出力すれば良いのです。このレッスンでは文字列の右端の1文字を削除する、そういう解説をしました。

Excelで扱うCSVファイル

CSV形式で保存されたテキストファイルをダブルクリックすると通常Excelが自動的に起動しますが、しばしばデータが正しく読み込まれないなどのトラブルが発生します。このコースでは必要な用途に合わせて適切にデータを読み込めるように、CSVファイルを扱ううえで必要な知識や読み込み・出力のさいの注意点などについて解説します。

2時間04分 (20 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 1,990
発売日:2014年03月05日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。