VBAを色々と垣間見る

フォームを利用してファイルの内容を表示2

read1

いつものようにシート1のセルC3に「go」と入力します。
ユーザーフォームが表れます。上のテキストボックスに、存在するファイルの名前をフルパスで入力します。
そのファイルはテキストファイル(.txt)としています。


◆Sheet1
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Range("c3").Value = "go" Then
        Load UserForm1
        UserForm1.Show
    End If
    Range("c3").Value = ""
End Sub

◆UserForm1
Option Explicit
Dim myfile As New FileSystemObject
Dim mytxtfile As TextStream
Dim ary() As String

Private Sub CommandButton1_Click()  'ファイルを読む
    Dim n As Integer
    Dim filename As String      ' "c:\mymy\data_a.txt"
    
    If TextBox1.Text <> "" Then
        filename = TextBox1.Text
    Else
        MsgBox ("テキストボックスにファイル名を、フルパスで入力してください。")
        Exit Sub
    End If
    n = 0
    Set mytxtfile = myfile.OpenTextFile(filename:=filename, IOMode:=ForReading)
    ListBox1.Clear
    Do Until mytxtfile.AtEndOfStream
        ListBox1.AddItem (mytxtfile.ReadLine)   ' サイズ取得
        n = n + 1
    Loop
    mytxtfile.Close
    Set mytxtfile = Nothing
    
    MsgBox "データの件数(n)は" & n
    
    Set mytxtfile = myfile.OpenTextFile(filename:=filename, IOMode:=ForReading)
    ReDim ary(n - 1)
    n = 0
    Do Until mytxtfile.AtEndOfStream
        ary(n) = mytxtfile.ReadLine '
        n = n + 1
    Loop
    mytxtfile.Close
    Set mytxtfile = Nothing
End Sub

Private Sub CommandButton2_Click()  '閉じる
    Unload UserForm1
End Sub


★VBEのメニューのツールにて、参照設定で「Microsoft Scripting Runtime」にチェックマークを入れて参照に加えてください。

read2


出稿2019年4月7日

tsuingcom