テキストファイルの操作について

この講座は有料講座です。
講座の購入後ご覧になれます。

ログインアカウントの新規作成

解説

テキストファイルの操作方法について説明しています。

この教材についての過去の質問・感想

12550 : 小川慶一の回答 (2020-11-01 05:57:35)

田中 宏明さん:

おはようございます。

エクセルシートへの記入不要なようでしたら、 VBS でもできそうですね。
田中さんなら興味持たれるかとも。トライしてみてください (^^


12542 : 田中 宏明さんのコメント (2020-10-31 18:10:37)

久しぶりに仕事でテキストファイルの処理を行いました。
具体的には、あるフォルダに保存された複数CSVファイルを1つのCSVファイルに結合するツール作成。
配列を利用することでWorkSheet不要の処理となりました。
 ①複数CSVファイルを順番にOpenTextFileメソッドで開き、TextStreamのReadLineメソッドで行データを一次元配列に格納
 ②別のCSVファイルをOpenTextFileメソッドで作成
 ③一次元配列に格納された行データをTextStreamのWriteLineメソッドで②のCSVファイルに追記


10617 : 受講生さんのコメント (2018-10-02 22:42:43)

csvファイルを読み込んだ直後に配列に代入した実際のコードです。
小川先生:

VIP向け新講座、とても楽しみです。
実際のコードもぜひ見てください。(添削は不要です。)

Set TS = FSobj.OpenTextFile(Filename:=sDir & "\" & answerFile(Fcnt), IOMode:=ForReading, Create:=False, Format:=TristateUseDefault)

'改行コードで区切り、配列に代入。配列は行ごとのデータになる。
Records = Split(TS.ReadAll, vbNewLine)


10616 : 小川慶一の回答 (2018-10-02 11:42:24)

受講生 さん:

すいません、お返事漏れていました。

成果報告ありがとうございます。
すばらしい成果、なによりです。

VIP向け新講座も準備中です。楽しみにしていてください。

> 外部連携講座は、かなり奥が深いですが、このテキストファイルの操作は、急にレベルが高くなったように感じたので、理解を深めるまでに相当な時間がかかりました。
> 今では、FileSystemObject TextStreamを使い、csvファイル(カンマで区切られたデータ)を読み込んだ直後に配列に代入し、高速にデータ処理できるまになりました。
> 達人養成塾に入って、2年半での成果報告です。


10598 : 受講生さんのコメント (2018-09-27 19:56:45)

外部連携講座は、かなり奥が深いですが、この
テキストファイルの操作は、急にレベルが高く
なったように感じたので、理解を深めるまでに
相当な時間がかかりました。

今では、FileSystemObject TextStreamを使い、
csvファイル(カンマで区切られたデータ)を
読み込んだ直後に配列に代入し、高速にデータ
処理できるまになりました。

達人養成塾に入って、2年半での成果報告です。


10015 : 小川慶一の回答 (2018-05-21 14:21:37)

受講生 さん:

こちらの件について、続きのコメントです。

改めて調査しました。
とりいそぎお伝えすると、 AtEndStreamを使うことが推奨です。
AtEndOfLineは、空白行が途中にあるとそこで読み込みを中断してしまうので。
追って、サンプルデータを使ったデモの動画を追加したいと考えています。

ひきつづきよろしくお願いいたします。


> AtEndOfLine と streamについて、
> 動画内での説明と字幕での説明が違いますが
> 結局はどちらなのでしょうか。
> 混乱するので動画の再編集をしていただければ
> 有り難いかなと思いますが。


9987 : 小川慶一の回答 (2018-05-16 08:08:37)

受講生 さん:

おはようございます。

お返事遅れました。
事務局に確認させ、早々に修正対応させたいと思います。

また、早いうちにお返事さしあげます。

とりいそぎ、よろしくお願いいたします。


> AtEndOfLine と streamについて、
> 動画内での説明と字幕での説明が違いますが
> 結局はどちらなのでしょうか。
> 混乱するので動画の再編集をしていただければ
> 有り難いかなと思いますが。


9974 : 受講生さんのコメント (2018-05-14 21:48:25)

AtEndOfLine と streamについて、
動画内での説明と字幕での説明が違いますが
結局はどちらなのでしょうか。
混乱するので動画の再編集をしていただければ
有り難いかなと思いますが。


5549 : 山田 将之さんのコメント (2016-01-10 13:19:12)

理解できました。


5367 : 小川慶一の回答 (2015-12-02 08:27:25)

受講生 さん:

よかったです。ひきつづきよろしくお願いいたします。

>小川先生
>
>丁寧な説明をありがとうございます。
>
>納得することができました。


5357 : 受講生さんのコメント (2015-12-01 10:34:46)

小川先生

丁寧な説明をありがとうございます。

納得することができました。


5338 : 小川慶一の回答 (2015-11-27 19:29:54)

受講生 さん:

Do Until ... は条件を満たしたところで Do Loop の中身には入りませんから、「Do Until txt.AtEndOfLine」にすると最後の行を取得できた段階で、 Do Loop の中には入らない、つまりスキップされます。

改行よりもテキストストリームの終端のほうが後にありますので、「Do Until txt.AtEndOfStream」にすると最後の改行までも問題なく Do Loop の中で処理されます。

この説明でご理解いただけそうでしょうか?


>「Do Until txt.AtEndOfStream」で読み込むとテキストファイルの中身全て(広瀬川.....萩原朔太郎)が読み込まれますが、「Do Until txt.AtEndOfLine」にすると「広瀬川.....もとまらず。」と最後の1行が読み込まれませんが、どういった違いなのでしょうか?
>
>

 Sub ReadText2()
>    Dim fs As Scripting.FileSystemObject
>    Dim txt As TextStream
>    Dim path As String
>    Dim stEachline As String
>    
>    path = ThisWorkbook.path & "\fsosample\textfile1.txt"
>    Set fs = New Scripting.FileSystemObject
>    
>    Set txt = fs.OpenTextFile(filename:=path, IOMode:=ForReading, create:=True, _
>        Format:=TristateUseDefault)
>    
>    Do Until txt.AtEndOfStream
>        stEachline = txt.ReadLine
>        Debug.Print stEachline
>    Loop
>
>    txt.Close
>    Set txt = Nothing
>    Set fs = Nothing
>End Sub 


5315 : 受講生さんのコメント (2015-11-24 16:19:48)

「Do Until txt.AtEndOfStream」で読み込むとテキストファイルの中身全て(広瀬川.....萩原朔太郎)が読み込まれますが、「Do Until txt.AtEndOfLine」にすると「広瀬川.....もとまらず。」と最後の1行が読み込まれませんが、どういった違いなのでしょうか?

 Sub ReadText2()
    Dim fs As Scripting.FileSystemObject
    Dim txt As TextStream
    Dim path As String
    Dim stEachline As String
    
    path = ThisWorkbook.path & "\fsosample\textfile1.txt"
    Set fs = New Scripting.FileSystemObject
    
    Set txt = fs.OpenTextFile(filename:=path, IOMode:=ForReading, create:=True, _
        Format:=TristateUseDefault)
    
    Do Until txt.AtEndOfStream
        stEachline = txt.ReadLine
        Debug.Print stEachline
    Loop

    txt.Close
    Set txt = Nothing
    Set fs = Nothing
End Sub 


3日がかりのその仕事、3分で終わらせる方法教えます。ガラパゴスタディーオンライン講座 ユーザー登録

本講座の動画一覧

  1. 【動画1】 これから取り扱うトピックを説明
    【動画1】 これから取り扱うトピックを説明 未習得
  2. 【動画2】 クラスとインスタンス、外部ライブラリの参照
    【動画2】 クラスとインスタンス、外部ライブラリの参照 未習得
  3. 【動画3】 「クラス」と「インスタンス」について
    【動画3】 「クラス」と「インスタンス」について 未習得
  4. 【動画4】 クラスの連携について
    【動画4】 クラスの連携について 未習得
  5. 【動画5】 「クラス」と「インスタンス」の生成を体験
    【動画5】  「クラス」と「インスタンス」の生成を体験 未習得
  6. 【動画6】 「New キーワード」と 「固有オブジェクト型での変数宣言とそのメリット」について
    【動画6】 「New キーワード」と 「固有オブジェクト型での変数宣言とそのメリット」について 未習得
  7. 【動画7】 外部ライブラリの参照について1
    【動画7】 外部ライブラリの参照について1 未習得
  8. 【動画8】 外部ライブラリの参照について2
    【動画8】 外部ライブラリの参照について2 未習得
  9. 【動画9】 ファイルの操作・フォルダの操作説明
    【動画9】 ファイルの操作・フォルダの操作説明 未習得
  10. 【動画10】 フォルダ内のサブフォルダとファイルをリストアップ
    【動画10】 フォルダ内のサブフォルダとファイルをリストアップ 未習得
  11. 【動画11】 テキストファイルの操作について
    【動画11】 テキストファイルの操作について 未習得
  12. 【動画12】 文字列操作の一例を紹介
    【動画12】 文字列操作の一例を紹介 未習得
  13. 【動画13】 データベース接続を簡単に実現する外部ライブラリについて
    【動画13】 データベース接続を簡単に実現する外部ライブラリについて 未習得
  14. 【動画14】 データベースとの接続と接続解除について
    【動画14】 データベースとの接続と接続解除について 未習得
  15. 【動画15】 Openメソッドについて
    【動画15】 Openメソッドについて 未習得
  16. 【動画16】 カレントレコードについて
    【動画16】 カレントレコードについて 未習得
  17. 【動画17】 簡単なSQL を使った.mdb ファイルからデータを取得するサンプルについて
    【動画17】 簡単なSQL を使った.mdb ファイルからデータを取得するサンプルについて 未習得
  18. 【動画18】 ORDER BYの紹介
    【動画18】 ORDER BYの紹介 未習得
  19. 【動画19】 データベースの更新について
    【動画19】 データベースの更新について 未習得
  20. 【動画20】 既存レコード内容の削除とデータリンクファイルによる接続について
    【動画20】 既存レコード内容の削除とデータリンクファイルによる接続について 未習得
  21. 【動画21】 Office アプリケーションを操作・連携するには
    【動画21】 Office アプリケーションを操作・連携するには 未習得
  22. 【動画22】 PowerPoint の主要オブジェクト紹介
    【動画22】 PowerPoint の主要オブジェクト紹介 未習得
  23. 【動画23】 Excel の表を貼り付けるには
    【動画23】 Excel の表を貼り付けるには 未習得
  24. 【動画24】 Wordと連携するには
    【動画24】 Wordと連携するには 未習得
  25. 【動画25】 文書中の一文を操作するには
    【動画25】 文書中の一文を操作するには 未習得

塾長 小川慶一

メニュー

コメント紹介

もっと見る

ページの先頭へ