このコードを使用して、選択したデータベースにインポートできる csv ファイルを作成できます。あなたが説明したものと同様のサイズのデータセットでテストしたところ、約 30 秒で完了しました。
Sub tgr()
Dim arrData As Variant
Dim rIndex As Long
Dim cIndex As Long
Dim i As Long
Dim strLine As String
Dim strTemp As String
arrData = Range("A1", Cells(Cells(Rows.Count, "A").End(xlUp).Row, Cells(1, Columns.Count).End(xlToLeft).Column)).Value
Close #1
Open "C:\Temp\ExcelData.csv" For Output As #1
Print #1, "Product,Customer,Price"
For rIndex = 2 To UBound(arrData, 1)
For cIndex = 2 To UBound(arrData, 2)
strLine = vbNullString
For i = 1 To 3
strTemp = Choose(i, arrData(rIndex, 1), arrData(1, cIndex), arrData(rIndex, cIndex))
If InStr(1, strTemp, ",", vbTextCompare) > 0 Then strTemp = """" & strTemp & """"
strLine = strLine & "," & strTemp
Next i
Print #1, Mid(strLine, 2)
Next cIndex
Next rIndex
Close #1
Erase arrData
End Sub