VBAコードでシート名を取得したい。
下記のコードは、指定したExcelブックにある情報をVBAコードを設置したブックに
情報を取得するコードになります。
質問なんですが・・・指定したExcelブックは、予めSheet名までをVBAコードで指定し、
そのSheetの内容を取得していますが、この部分を指定したSheet名ではなく、
Sheet名を取得し、取得したSheet名から自分で選択したSheetを選んび、
そのSheetの内容を取得する様に変えたいと考えています。
取得する側のSheet名が一定の名前になっていない為、
今までSheet名を変えて情報を取得する様にしていたのを
変えずに情報を取得したいと思ったからなんですが・・・
どの様に変えればできるのか初心者のためよろしくお願いします。
できましたら・・・UserForm2を使ってComboboxに取得するSheet名を
一覧化し、そのComboboxからSheet名を選べる様にしたいと思います。
-----------------------------------------------------------------------------------
Public Day As String '全プロシージャーで有効な変数
Sub CommandButton1()
If MsgBox(Space(6) & "メールデータを取込みます。よろしいですか?", vbYesNo, "継続確認") = 7 Then Exit Sub
Dim LstWb As Workbook
Dim LstWs As Worksheet
Dim OutWs As Worksheet
Dim LstDt As Variant
Dim EndRow As Long
Dim Day0 As String
Dim Day1 As String
Dim i As Long
Dim j As Integer
Dim k As Long
Set LstWb = Workbooks.Open(ThisWorkbook.Path & "\テストファイル.xlsm")
Set OutWs = ThisWorkbook.Sheets("Sheet1")
Set LstWs = LstWb.Sheets("Sheet1")
EndRow = LstWs.Cells(Rows.Count, 1).End(xlUp).Row
With LstWs
LstDt = .Range(.Cells(1, 1), .Cells(EndRow, 5))
End With
LstWb.Close
Set LstWb = Nothing
Set LstWs = Nothing
Load UserForm2
With UserForm2
Day0 = LstDt(2, 4)
.ComboBox1.AddItem Day0
For i = 2 To EndRow
With .ComboBox1
Day0 = .List(.ListCount - 1)
Day1 = LstDt(i, 4)
If Day0 <> Day1 Then
.AddItem Day1
End If
End With
Next i
.ComboBox1.Value = .ComboBox1.List(0)
End With
UserForm2.Show
For i = 1 To 5
OutWs.Cells(1, i).Value = LstDt(1, i)
Next i
k = 2
For i = 2 To EndRow
Day0 = LstDt(i, 4)
If Day = Day0 Then
For j = 1 To 5
OutWs.Cells(k, j).Value = LstDt(i, j)
Next j
k = k + 1
End If
Next i
Set OutWs = Nothing
LstDt = Empty
UserForm1.Show (vbModeless)End Sub
お礼
回答ありがとうございます。 MajorUnitは検索結果ではコードの中に使用しているのはよくあったのですが、 単体で説明しているものがなかったので。。。