#537 文字列の後続のTabコードを除去する方法 VBA

ExcelなどからCSVファイルに吐き出したデータを扱う場合、Excelのワークシートの作りによっては、各行の後ろ(ワークシートの右端)に余分なTabコードが付いてしまうことがあります。

ワークシートの右端に何らかのデータを一度入力したあと、それを単にクリアしただけの場合、画面上の見た目には空欄なのですが、内部的に空の文字列が残っていることがあります。そのような場合、Tabだけが付いた状態でCSVファイルに出力されてしまいます。

その対策として、Excel上の操作でそれらの”列を削除”することで解決できることもありますが、たとえ余分なTabが付いていたとしても、Access側のVBAでうまく処理させたいような場合に使えるFunctionプロシージャの例を紹介します。

次のプロシージャでは、引数として与えられた文字列の後ろからTabコードを除去し、その結果の文字列を返します。
たとえば、CSVファイルから1件のレコードを読み込み、その文字列全体をこのプロシージャに掛け、そのあとSplit関数などでTabコードで区切ることによって、必要な分だけの列のデータを取り出すことができます。


Private Function CleanTab(strData As String) As String
'引数の文字列の後ろのTabコードを除去した文字列を返す

  Dim strRet As String
  Dim iintLoop As Integer

  strRet = strData
  For iintLoop = 1 To Len(strData)
    If Right$(strRet, 1) = vbTab Then
      strRet = Left$(strRet, Len(strRet) - 1)
    Else
      Exit For
    End If
  Next iintLoop

  CleanTab = strRet

End Function

| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved