.csv形式のファイルがあり、A-S列から、テーブルのようなレコードがいくつかあります。私の完全なプログラムはいくつかの行、列、セル値の編集などを挿入/削除/削除/追加します。私は必要なすべての操作をコード化することができました。今、それをGUIと統合しようとしています。
私が欲しいのは、Ax1からVBAユーザーフォームにレコードがある最後の列までのセルを表示することです。どうやってやるの?
* ps:繰り返しますが、ファイルの形式は.csvで、Excel 2007を使用しています
複数列のリストボックスを使用してデータを表示できます。
[〜#〜]ロジック[〜#〜]
テキスト(Csv)ファイルを一時シートにインポート
Private Sub CommandButton1_Click()
Dim wb As Workbook, wbTemp As Workbook
Dim wsTemp As Worksheet
Set wb = ThisWorkbook
Set wbTemp = Workbooks.Open("C:\MyCsv.Csv")
wbTemp.Sheets(1).Copy After:=wb.Sheets(wb.Sheets.Count)
Set wsTemp = ActiveSheet
wbTemp.Close SaveChanges:=False
End Sub
そして今、あなたはそのデータを複数列のリストボックスに表示することができます。
そのデータを複数列のリストボックスに表示
私は3列から20列までの例をとっています。必要に応じて変更してください
Private Sub CommandButton1_Click()
Dim wb As Workbook, wbTemp As Workbook
Dim wsTemp As Worksheet
Set wb = ThisWorkbook
Set wbTemp = Workbooks.Open("C:\MyCsv.Csv")
wbTemp.Sheets(1).Copy After:=wb.Sheets(wb.Sheets.Count)
Set wsTemp = ActiveSheet
wbTemp.Close SaveChanges:=False
With ListBox1
.ColumnCount = 3
.ColumnWidths = "50;50;50"
.RowSource = wsTemp.Range("A1:C20").Address
End With
End Sub
[〜#〜]スクリーンショット[〜#〜]
serformアンロードイベントで一時シートを削除
一時シートを削除するには、コードの先頭でwsTemp
を宣言して、UserForm_QueryClose
イベントでアクセスできるようにします。この完全な例を見る
Option Explicit
Dim wsTemp As Worksheet
Private Sub CommandButton1_Click()
Dim wb As Workbook, wbTemp As Workbook
Set wb = ThisWorkbook
Set wbTemp = Workbooks.Open("C:\MyCsv.Csv")
wbTemp.Sheets(1).Copy After:=wb.Sheets(wb.Sheets.Count)
Set wsTemp = ActiveSheet
wbTemp.Close SaveChanges:=False
With ListBox1
.ColumnCount = 3
.ColumnWidths = "50;50;50"
.RowSource = wsTemp.Range("A1:C20").Address
End With
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Application.DisplayAlerts = False
wsTemp.Delete
Application.DisplayAlerts = True
End Sub
HTH