TEXT

TEXT-[テキストファイルを配列の様に扱う-ExcelVBA Class Modules]

NAME

TEXT– [TEXTクラスモジュール]

作成日:2013/05/10更新日:2013/05/17動作環境:[Excel 2000-2016]

SYNOPSIS

        Sub Main()
            Dim objText As New Text
            Dim i As Long

            objText.FilePath = "C:\hoge.txt"
            For i = 1 To 1000
                objText.Push (i)
            Next i

            Debug.Print objText.Size
            Debug.Print objText.Back
        End Sub

DESCRIPTION


AN OUTLINE — 概要

配列感覚でテキストファイルを編集可能にするクラスモジュールです。
このクラスモジュールはファイル操作関数を意識することなく、ファイルの先頭に文字列を追加したり、任意の行の値を変更する事が可能です。

主な機能:
・ファイルの先頭に文字列を挿入する。
・ファイルの先頭、末尾の文字列削除および取得。
・任意の行の値を変更する。


PREPARATION — 準備

[DOWNLOAD] から、本ExcelBookをダウンロードします。

ダウンロードが完了したらzipファイルを解凍してください。そこに実行ファイルが含まれています。


HOW TO USE — 使用方法

ダウンロードが完了したらマクロを有効にして開いてください。そこにサンプルモジュールと本モジュールが含まれています。
※クラスをエクスポート、インポートする事で別のExcelBookでも使用することが出来ます。

最初に[Dim objText As New Text]を宣言し、オブジェクトを使用可能にします。
オブジェクトを[Dim objText]とした場合の記述方法は以下の通りです。

        Dim objText As New Text

  

○対象のテキストフィルを設定「Text.FilePath」プロパティ

対象とするテキストフィルを指定及び取得するには、「Text.FilePath」プロパティを使用します。
注:指定したファイルがない場合は空のテキストファイルを自動で作成します。

        objText.FilePath = "C:\hoge.txt"

  

○テキストファイルの末尾に値を追加「Text.Push/Text.Add」メソッド

テキストファイルの末尾に値を追加するには、「Text.Push/Text.Add」メソッドを使用します。
Text.Push(値)と入力し、テキストファイルの末尾に値を追加します。
注:「Text.Push/Text.Add」メソッドは同じ動きをします。

        objText.Push(50)

  

○テキストファイル末尾の値を取得「Text.Back」メソッド

テキストファイル末尾の値を取得するには、「Text.Back」メソッドを使用します。
Text.Back()と入力し、戻り値は[String]型となります。
注:テキストファイルが空白の場合はエラーとなり、空白を返します。

        value = objText.Back()

  

○テキストファイル末尾の値を取得し、テキストファイルから値を削除「Text.Pop」メソッド

テキストファイル末尾の値を取得し、テキストファイルから値を削除するには、「Text.Pop」メソッドを使用します。
Text.Pop()と入力し、戻り値は[String]型となります。戻り値は省略可能。
注:テキストファイルが空白の場合はエラーとなり、空白を返します。

        value = objText.Pop()

  

○テキストファイルの先頭に値を追加「Text.Unshift」メソッド

テキストファイルの先頭に値を追加するには、「Text.Unshift」メソッドを使用します。
Text.Unshift(値)と入力し、配列の先頭に要素を追加します。

        objText.Unshift(50)

  

○テキストファイルの先頭値を取得「Text.Front」メソッド

テキストファイルの先頭値を取得するには、「Text.Front」メソッドを使用します。
Text.Front()と入力し、戻り値は[String]型となります。
注:テキストファイルが空白の場合はエラーとなり、空白を返します。

        value = objText.Front()

  

○テキストファイルの先頭値を取得し、テキストファイルから値を削除「Text.Shift」メソッド

テキストファイルの先頭値を取得し、テキストファイルから値を削除するには、「Text.Shift」メソッドを使用します。
Text.Shift()と入力し、戻り値は[String]型となります。戻り値は省略可能。
注:テキストファイルが空白の場合はエラーとなり、空白を返します。

        value = objText.Shift()

  

○テキストファイルの指定行値取得「Text.At」メソッド

テキストファイルの指定行値を取得するには、「Text.At」メソッドを使用します。
Text.At(3)と入力し、戻り値は[String]型となります。
注:テキストファイルが空白の場合はエラーとなり、空白を返します。

        value = objText.At(3)

  

○テキストファイルの指定行の値を変更「Text.Value」メソッド

テキストファイルの指定行の値を変更するには、「Text.Value」メソッドを使用します。
Text.Value(行) = 値と入力し、テキストファイルの指定行の値を変更します。

        objText.Value(5) = "a"

  

○テキストファイルの行数取得「Text.Size」メソッド

テキストファイルの行数を取得するには、「Text.Size」メソッドを使用します。
Text.Size()と入力し、戻り値は[Long]型となります。

        value = objText.Size()

  

○テキストファイル行数初期化「Text.ReSize」メソッド

テキストファイルの行数を初期化をするには、「Text.ReSize」メソッドを使用します。
Text.ReSize()と入力し、テキストファイルの行数を初期化します。
注:行数を指定するとその行数が入力されたテキストファイルが作成されます。
注:行数に「0」を指定した場合は空のテキストファイルが作成されます。

        objText.ReSize(10)

  

○テキストファイル行数拡張処理「Text.ReSizePreserve」メソッド

テキストファイルの内容を変更せずに行数を拡張するには、「Text.ReSizePreserve」メソッドを使用します。
Text.ReSizePreserve()と入力し、テキストファイルの行数を拡張します。
注:指定した行数が、ファイル行数より小さい場合は、指定行数以降のデータは削除されます。

        objText.ReSizePreserve(10)

EXAMPLE — 使用例

例1:テキストファイルの末尾に値を追加し、最終行の値を表示する。

     Sub Sample()
            Dim objText As New Text
            Dim i As Long

            objText.FilePath = "C:\hoge.txt"
            For i = 1 To 1000
                objText.Push (i)
            Next i

            Debug.Print objText.Back
     End Sub

  

例2:テキストファイルの末尾に値を追加し、最終行の値を表示する。其の弐

     Sub Sample()
            Dim objText As New Text
            Dim i As Long

            objText.FilePath = "C:\hoge.txt"
            For i = 1 To 1000
                objText.Add (i)
            Next i

            Debug.Print objText.Back
     End Sub

  

例3:テキストファイルの先頭に値を追加し、最終行の値を表示する。

     Sub Sample()
            Dim objText As New Text
            Dim i As Long

            objText.FilePath = "C:\hoge.txt"
            For i = 1 To 1000
                objText.Unshift (i)
            Next i

            Debug.Print objText.Back
     End Sub

  

例4:テキストファイルの末尾に値を追加し、先頭から値を取り出し表示する。

     Sub Sample()
            Dim objText As New Text
            Dim i As Long

            objText.FilePath = "C:\hoge.txt"
            For i = 1 To 1000
                objText.Push (i)
            Next i

            For i = 1 To 10
                Debug.Print objText.Shift
            Next
     End Sub

  

例5:テキストファイルの先頭から値を取り出し、末尾に値を追加する。

     Sub Sample()
            Dim objText As New Text
            Dim i As Long

            objText.FilePath = "C:\hoge.txt"
            For i = 1 To 10
                objText.Push (i)
            Next

            For i = 101 To 110
                Debug.Print objText.Shift
                objText.Push (i)
            Next
     End Sub

  

例6:テキストファイルを指定行数で初期化する。

     Sub Sample()
            Dim objText As New Text

            objText.ReSize (50)
     End Sub

  

例7:テキストファイルを指定行数で拡張する。

     Sub Sample()
            Dim objText As New Text
            Dim i As Long

            objText.FilePath = "C:\hoge.txt"
            For i = 1 To 10
                objText.Push (i)
            Next

            objText.ReSizePreserve (50)
     End Sub

  

例8:テキストファイルの指定行の値を変更する。

     Sub Sample()
            Dim objText As New Text
            Dim i As Long

            objText.FilePath = "C:\hoge.txt"
            For i = 1 To 10
                objText.Push (i)
            Next

            objText.Value (5) = "abc"
     End Sub

REFERENCE

NameDescriptionSyntax

ATTENTION

・本ソフトを利用した事によるいかなる損害も一切の責任を負いません。

・感想や要望、不具合などありましたら、作者までご連絡ください。


MEMO

本ソフトの[readme.txt]に「NAME/VERSION/AUTHOR/COPYRIGHT」が記載されています。


CONTRIBUTION

寄付歓迎

本モジュールはフリーですが、「このモジュールのおかげで、素晴らしいソフトが作れた」など、寄付をしていただける方がいましたら、作者宛までご一報ください。


DOWNLOAD

<<—DOWNLOAD TEXT—>>


VERSION

Version:1.00 – Fri May 10, 2013
Version:1.01 – Fri May 17, 2013 | [FilePath]に指定したテキストファイルがない場合、空のテキストファイルを自動で作成するように変更。


AUTHOR

Syunzi Shimohata < webmaster@taru-net.jp > https://www.taru-net.jp/