複数の名前付きワークシートを含むマクロが有効な Excel ワークブックがあります。ワークシートの 1 つは「パネル」という名前で、2 番目のワークシートは「データ」という名前です。「パネル」という名前のシートには、マクロが割り当てられたボタンがあります。「パネル」という名前のワークシートのボタンを選択して、ファイルの参照ウィンドウを表示したいと思います。ユーザーがハード ドライブで csv ファイルを選択したら、セル A1 から始まる「data」という名前のワークシートに csv ファイルの内容をインポートしたいと思います。
問題 1: ボタンに割り当てた vba により、csv ファイルの内容がボタンと同じワークシート (「パネル」ワークシート) に配置されます。csvファイルの内容を「データ」シートに載せてほしいです。
問題 2: また、ハード ドライブと「capture.csv」というファイルを参照する一連のコードがあります。そのため、マクロを有効にした Excel ファイルが別のコンピューターにあると、ファイルがクラッシュします。どのコンピューターでもファイルを使用できるように、パスウェイ文字列を削除する方法はありますか?
この問題を解決するための支援をいただければ幸いです。ボタンに割り当てられたマクロは次のとおりです。
Sub load_csv()
Dim fStr As String
With Application.FileDialog(msoFileDialogFilePicker)
.Show
If .SelectedItems.Count = 0 Then
MsgBox "Cancel Selected"
End
End If
'fStr is the file path and name of the file you selected.
fStr = .SelectedItems(1)
End With
Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\laptop\Desktop\CAPTURE.csv", Destination:=Range("$A$1"))
.Name = "CAPTURE"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
MsgBox fStr
End With
End Sub