top of page

​タグ一覧

配列処理(73)

階層化フォーム(33)

ファイル操作(28)

開発事例(22)

シート・セル操作(18)

図形操作(13)

コード自動生成(10)

ユーザーフォーム(9)

文字列操作(8)

設計思想(7)

開発効率化(6)

数学(6)

GAS(5)

アニメーション(5)

技術解説(4)

講座実施報告(5)

イミディエイトウィンドウ(4)

Googleスプレッドシート(4)

副業(4)

クリップボード(4)

条件付き書式(4)

その他(4)

ココナラ(3)

小説(3)

HTML(3)

JavaScript(3)

OneDrive(2)

イベントプロシージャ(2)

Enum(2)

PDF(2)

フリーランス(2)

リスキリング(2)

Outlook(2)

介護(2)

Discord(2)

シフト表(2)

LookerStudio(2)

日報(2)

カレンダー(2)

罫線(2)

パズル(2)

小ネタ(2)

コード解説(2)

クラスモジュール(2)

ステータスバー(1)

コード解析(1)

バックアップ(1)

可変長引数配列(1)

ブック処理(1)

スクレイピング(1)

スプレッドシート(1)

coconala(1)

リボン登録マクロ(1)

QRコード(1)

実行予約(1)

給与計算(1)

VBA不使用(1)

リボン(1)

超勉強会(1)

スピログラフ(1)

図名描写(1)

連想配列(1)

溶接ロボット(1)

保育士(1)

楽天市場(1)

経理(1)

医療(1)

文書作成(1)

発注書(1)

ショートカット(1)

WebAPI(1)

色操作(1)

スーパー開発ショートカット(1)

ライブラリ処理(1)

放課後等デイサービス(1)

児童福祉支援(1)

学校(1)

UI(1)

CAD(1)

カーソル操作(1)

InputText|文字コード対応テキスト読込を配列化 | Excel VBA

更新日:1月4日


InputText|文字コード対応テキスト読込を配列化 | Excel VBA

<概要 (テキスト 読込 VBA)>

InputText は、テキストファイルを読込み、内容を **二次元配列(行×列)** として取得するための汎用プロシージャです(テキスト 読込 VBA)。

UTF-8 / UTF-16 / ShiftJIS といった **複数の文字エンコーディングに対応**しており、CSV や区切り付きテキストを安全に扱えます。


VBA標準の `Open ... For Input` では文字化けが起こりやすい UTF 系ファイルも、

ADODB.Stream を併用することで正確に読み込める点が特長です。


区切り文字(Delimiter)や改行コード(NewLine)は引数で柔軟に指定でき、

列数が行ごとに異なるテキストでも、最大列数に合わせた二次元配列として自動整形されます。


「CSVを一度配列で扱ってから高速処理したい」「文字コード違いのファイルを統一的に読みたい」

といった場面で、そのまま再利用できる実務向けの部品です。



<用途>


  • 指定パスのテキストファイルを読み込む(テキスト読込)



<プロシージャ紹介>


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


Excel VBAによる業務自動化・ツール開発をご検討の方へ

​"脱Excel"の前に、現状のExcelの潜在能力を120%発揮してみませんか?

Softex-Celware

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

  • Facebook
  • Twitter
  • YouTube

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

bottom of page