top of page

テキストファイルを読み込んで配列に格納

更新日:9月23日


<概要>


 今回は、指定パスのテキストファイルを読み込んで配列に格納する汎用プロシージャを紹介します。


 読み込むテキストファイルはフルパスで指定しますが、テキストファイルの各行がカンマ「,」区切りやTab区切りの場合は、その区切りの数だけ列数の二次元配列を返します。データを二次元配列として取得することで、次に処理しやすい形式として扱うことが可能となります。

 

 また、テキストファイルの文字エンコーディングはUTF-8、UTF-16、ShiftJISから選択も可能です。読み込むテキストファイルの形式に合わせて設定してください。

 


<用途>


  • テキストファイルを読み込む



<プロシージャ紹介>


Public Function InputText(FilePath As String, StringEncode As EnumStringEncode, [Delimiter As String = "",""], [NewLine As String = vbCrLf]) As Variant


名前: InputText /Functionプロシージャ

説明: テキストファイルを読み込んで二次元配列として返す

文字エンコーディングはUTF-8,UTF-16,ShiftJISから選択


'引数

FilePath ・・・テキストファイルのフルパス

StringEncode・・・文字エンコーディング

[Delimiter] ・・・区切り文字

[NewLine] ・・・改行文字(デフォルトでvbCrLf)

  他vbLf,vbCrを設定可能



<実行例>


 次のようなコードを用意します。

 なおOneDriveの影響も考慮してConvOneDrivePath_LocalPathプロシージャを利用しています。


 フォルダ内には「Test_Comma.txt」と「Test_Tab.txt」の2つのテキストファイルが用意されています。

テキストファイルの例
テキストファイルの例

 2つのテキストファイルの中身は次のようになっています。「Test_Comma.txt」は各行の値がカンマ「,」で区切られており、「Test_Tab.txt」の場合はTabで区切られています。


Test_Comma.txtの中身
Test_Comma.txtの中身








 

Test_Tab.txtの中身
Test_Tab.txtの中身






 


 先ほどのコードを実行あとに、ローカルウィンドウを確認すると変数TextFile_Comma、TextFile_Tabには二次元配列としてテキストファイルの中身が格納されているのが確認できます。


取得結果をローカルウィンドウで確認
取得結果をローカルウィンドウで確認













 



<技術解説>

 InputTextプロシージャは第2引数で文字エンコーディングを選択できますが、コーディング中に入力候補がるようになっています。こちらはユーザー定義のEnum(EnumStringEncode)を引数の型として指定することで可能となるテクニックです。プロシージャの引数で複数の機能から選択させたい場合などで有効的です。


Enumを利用した文字コードの選択
Enumを利用した文字コードの選択

 ユーザー定義のEnum(EnumStringEncode)

Enumの記述
Enumの記述








引数でのEnumによる型の指定
引数でのEnumによる型の指定



<サンプルファイル>




<コード>

 

 Gist


最新記事

すべて表示
OneDriveのhttp形式のパスをローカル上のパスに変換

<概要> 今回は、 OneDriveのhttp形式のパスをローカル上のパスに変換する 汎用プロシージャを紹介します。 OneDriveを起動中だとThisWorkbook.Pa th(ThisWorkbookが保存されているフォルダのフルパス)の値がhttp形式になってしま...

 
 
 

コメント


softex-celware

​インボイス登録番号:T5810983887134

  • Facebook
  • Twitter
  • YouTube

©2023 softex-celware。Wix.com で作成されました。

bottom of page