• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBA テキスト読み込み(区切り文字で読み込み)  サンプルプログラムの改良をしてください。)

エクセルVBA テキスト読み込み(区切り文字で読み込み)  サンプルプログラムの改良方法

Tiffa9900の回答

  • Tiffa9900
  • ベストアンサー率31% (68/216)
回答No.3

タブは、「Chr(9)」ですよ。 自分なら、サブルーチン「ReadLine」中で 初めに、スペースを分割文字列に置換しちゃうかな? Dim で定義した直後に、  CurTxt = Replace(CurTxt, " ", DeLimiter) こうかな? こうすれば、その後の処理でスペースの部分も分割文字列として扱われる気がします。

dansin_Goo
質問者

お礼

回答ありがとうございます。 おっしゃっていることを確認させてください。 Sub ReadLine(CurTxt As String, DeLimiter As String, rn As Integer) Dim StrStart As Integer, StrEnd As Integer Dim StrArray() As String, cn As Integer サブルーチン「ReadLine」とは上記の部分から始まるところでいいですか? 「ReadLine」の中とはReadLineサブルーチンのどの変なのでしょうか。 >Dim で定義した直後に 何を定義するのでしょう。新しい変数?? CurTxt = Replace(CurTxt, " ", DeLimiter) この意味はCurTxtの中の""(つまりスペースのことですよね)をDeLimiter変数の中身に置き換えるという意味でよろしいですか? うーむ、まだまだぜんぜん理解が足りないです…。

関連するQ&A

  • スペース区切りのテキストファイルをExcelで開く

    テキストファイルをExcelファイルとして読み込む必要が多いです 毎回Excelの 開く を使ってテキストファイルを開くのは面倒なので、右クリックの 送る にExcelの実行ファイルをコピーしてそこに送っています ただ、この方式だとスペース区切りで改列出来ず、タブと改行(エンターキー)のみ反映したファイルが開きます 最初からスペース区切りも列区切りにした形でテキストファイルを開く方法(Excelの 開く を使わずに)はないでしょうか

  • vbaでテキストファイル(*.txt)を取込みたい

    vba初心者です。 Application.Dialogs(xlDialogOpen).Showで選択したテキストファイル(***.txt)をテキストファイルウィザードで、タブ、カンマ、スペース区切りで、エクセルファイルに取り込むマクロを組みたいのですが? 何度やってもうまくいきません。 ご教示願えないでしょうか! excel2002を使用してます。 よろしくお願いします。

  • ExcelでtxtファイルをVBAで読み込む方法

    スペース区切りのテキストファイル(拡張子はtxt)が有ります。 データは、数字ですが上桁には0が入っています。 00001 0003 010222 302033 00025 等のデータです。 このファイルを、ウイザードを使わずにVBAにて直接文字列(テキスト)として読み込むコマンドを失念してしまいました。 教えて下さい。宜しくお願い致します。

  • Excel でテキストファイルを開くときに「テキストファイルウィザード」を起動させたい

    Excel(Excel 2003)を「ファイル名を指定して実行」にて起動し(excel "C:\xxxx\xxx\xxx.txt")、Textファイル(.txt)を起動すると、Excel の機能の「テキストファイルウィザード」が起動されずにテキストファイルの内容がExcelのシートに展開されてしまいます。「テキストファイルウィザード」が起動されない為、区切り文字の指定ができず、特定の区切り文字を指定してファイルを開くことができません。 「ファイル名を指定して実行」にて、excel "C:\xxxx\xxx\xxx.txt" のように指定して実行した時に、「テキストファイルウィザード」が起動するように設定することはできませんでしょうか?

  • VBAでタブ区切りテキストの保存に関して

    VBAでタブ区切りテキストの保存のプログラムを書くためには Application.DisplayAlerts = False Sheets("sheet01").Copy ActiveWorkbook.SaveAs Filename:="D:\test.txt", FileFormat:=xlText ActiveWindow.Close Application.DisplayAlerts = True という記述が一般的に使われます。 いま、あるプログラムでexcelシート上に title subtitle 001  002  003 333  444  555 666  777  888 ような内容が書き込まれたものをタブ区切りで出力したいのですが、 上記の方法で出力すると、 titleやsubtitleと書かれた行の右側にも空白のタブ区切りが一緒に保存されてしまいます。 あるプログラムで読み込ませるためには、 この二つの行のタブ区切りをいちいち消す必要があり、毎回手作業でするのは面倒です。 VBAでこのようなタブ区切りの有無を行ごとに指定して保存するようなことは可能でしょうか?

  • エクセルのVBAでタブ区切りのテキスを出力したい。

    エクセルのVBAでテキスト出力をしたいのですが、 ・タブ区切りで保存 ・A列の最終行×1行目の最終列の範囲指定が対象 ・範囲内の空欄もタブ区切りにする(最終列には必ず数値あり) ・出力テキストはシートと同じフォルダ内へ格納 ・テキストファイル名はシート名 という感じにしたいのです。 いろいろ検索はしているのですが、これといった回答やサンプルは 見つかっておりません(><) ちなみに、私は、自動記録をしたものを改良して少し使えるレベルです。 よろしくお願いします。

  • 任意の区切り文字でsplitする方法

    VBAで任意の区切り文字でsplitする方法を教えてください。 例えば 123 456 789 333 3444 66 65 22 といようなスペースあるいはタブで区切られたテキストデータがあるとします。 これを配列に格納したいのですが、 この区切りがタブ一つとか、スペース一つとか決まっていれば split関数で簡単に配列に格納することができますが、 タブかも知れないし、スペースがかも知れないし その数も未定の場合にはどうしたら良いですか? replace関数を使って、まず全てのタブをスペースに変換し その後に、複数のスペースを一つのスペースに変換し 最後にsplit関数を使うという方法しかないでしょうか? もっとスマートな方法があれば教えてください。

  • テキストファイルのデータ区切り文字(制御文字)について

    テキストファイルにデータを保存しているのですが、区切り文字タブ\tはフィールドの区切りに使っています。 その状態で、仮に1つのフィールドにデータを詰め込む場合、,(カンマ)で区切った場合にデータ自体に金額の,があった場合、誤動作します。フィールドの区切りはタブ\tは普通ですが、1つのフィールドに複数データを持たせる場合の区切り文字は\0など使っても問題ないのでしょうか? 環境はWindows, Linux両方で使います。\0を使ってそれが文字列の最後とまた誤動作しても嫌です。 皆さんは\t以外にテキストデータの区切りにどのような制御文字を使っていますか?ちなみに改行は1レコードの区切り文字です。

    • ベストアンサー
    • Perl
  • excelからtab区切りテキストへの変換で…。

    過去の質問を検索しましたが、無い様ですので質問させてください。 excelでためたデータベースをtab区切りテキストに変換したのですが、 できあがったtab区切りテキストをテキストエディタで開きますと、 (" ")が勝手にデータの両端についてしまうのです。 例えば(18,000)という数字データがあったとします、 それをタブ区切りテキストに書き出すと、("18,000")という風になってしまいます。 そこで、とりあえずすべてのデータの書式を文字列にしてやりますと、(18000)となってしまいますから、 文字列として(,)を追加したのですが、 やっぱりtab区切りテキストに変換すると(" ")がついてきます。 ただし、普通の文字のフィールドは大丈夫です。 (" ")を消す方法はないでしょうか? 少々わかりにくい説明ですが、何卒よろしくお願いします。 あと、追加で質問なのですが、桁数の多い数字が勝手に16進数?に変わってしまいます。 こちらの方も原因が分かりませんので教えていただければ幸いです。 ちなみに検証してみたexcelのバージョンは Win版 Excel2000 Mac版 Excel98 です。 設定は特にいじっていませんので、初期設定だと思います。 よろしくお願いします。

  • EXCELの区切り位置のコマンドについて

    HPから取ってきたデータをEXCELにテキストで貼り付けて、 スペースで区切る処理をするために、データメニューの区切り位置のコマンドで処理しようとしていますが、この区切り位置のコマンドは、1行ごとにしなければならないようですが、100行もあるデータも一回一回、データメニューの区切り位置のコマンドを実行しなければなりませんか? 記録マクロで処理しようと思いましたが、セルを固定してしまうマクロになるのでできませんでした。 よろしくお願いいたします。