配列を多次元配列に変換する
配列データを多次元配列に変換するための関数。
多次元配列は途中で列数を増やすことができないため、事前に設定された列数より取り込む要素が多い場合は処理を終了するようにした。
使用例
Sub Main() Dim lineTxt As Variant lineTxt = ImportTxt("C:\bin\test.txt") Const txtCol = 3 '多次元配列の最大列数 Dim multiTxt As Variant multiTxt = MultiDimention(lineTxt, txtCol - 1, ",") End Sub
先日書いたテキストファイルを1行ずつ配列に取り込む関数で取り込んだ"lineTxt"を多次元配列に変換する流れ。前述の通り多次元配列の最大列数はこのMainで記載している。
必要な最大列数を調べる関数があればもっと汎用的になるか・・・。
配列から不要文字を削除して返す
関数を書くほどでもないかもしれないが、使用頻度はそこそこあるので作ってみた。
使用例
Sub Main() Dim testAry() As Variant: ReDim testAry(2) testAry(0) = "1,1" testAry(1) = "2,2" testAry(2) = "3,3" testAry = RemoveChar(testAry, ",") End Sub
配列内のデータからカンマを削除して返す処理。
処理後は testAry(o) = "11", testAry(1) = "22", testAry(2) = "33" となる。
指定したテキストデータを一行ずつ配列に取り込む
指定したテキストデータを一行ずつ配列データに取り込む関数。
使用例
Sub Main() Dim lineTxt As Variant lineTxt = ImportTxt("C:\bin\test.txt") End Sub
指定したフォルダから指定した種別のファイル名を取得する
Dir関数で指定フォルダの指定した種別のファイル名を取得する関数。
配列の最後にブランクのデータが出来てしまうため、Loop終わりでもReDimしている。もっとスマートなやり方がないものか。
使用例
Sub Main() Dim fileName As Variant fileName = SearchFile("C:\bin\", "*.txt") End Sub