Ik wil via ShellExecute een comma-delimited (csv) bestand openen in Excel.
Normaal deed ik dat altijd via de volgende code:
totdat ik erachter kwam dat niet iedereen Excel in c:\program files heeft staan.
Nu las ik dat ShellExecute zelf kijkt welk programma er hoort bij een bepaalde extensie.
Ik heb nu het volgende:
in module1.bas:
in form1.frm:
In principe gaat alles goed, Excel opent het csv bestand MAAR:
Excel interpreteert nu het csv bestand als een gewoon TEKST-bestand.
Uitleg:
Dit is bijv. de eerste regel uit het csv bestand:
Naam1; 0202918726; 001; B
Maar bovenstaande regel staat in zijn geheel in cel A1 van Excel, en niet verdeeld over 4 kolommen zoals dat gewoonlijk zou moeten gaan met csv bestanden.
Hoe kan het dat met ShellExecute niet hetzelfde resultaat wordt geboekt als met Shell "C:\Program Files\Microsoft Office\Office\EXCEL.EXE " & App.Path & "\test.csv"?
Want met de methode die ik dus eerst gebruikte "parste" Excel het csv bestand WEL goed!
[edit] Er stonden aanhalingstekens in de title, kon React blijkbaar niet hebben...
Moet zijn: [vb6 & Excel 2K] Met ShellExecute een csv-bestand openen...
Normaal deed ik dat altijd via de volgende code:
code:
1
| Shell "C:\Program Files\Microsoft Office\Office\EXCEL.EXE " & App.Path & "\test.csv" |
totdat ik erachter kwam dat niet iedereen Excel in c:\program files heeft staan.
Nu las ik dat ShellExecute zelf kijkt welk programma er hoort bij een bepaalde extensie.
Ik heb nu het volgende:
in module1.bas:
code:
1
2
3
4
5
| Private Declare Function ShellExecuteA Lib "shell32.dll" ( _
ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long _
) As Long |
in form1.frm:
code:
1
| Call ShellExecute(Me.hwnd, "open", App.Path & "\test.csv", vbNullString, vbNullString, vbNormalFocus) |
In principe gaat alles goed, Excel opent het csv bestand MAAR:
Excel interpreteert nu het csv bestand als een gewoon TEKST-bestand.
Uitleg:
Dit is bijv. de eerste regel uit het csv bestand:
Naam1; 0202918726; 001; B
Maar bovenstaande regel staat in zijn geheel in cel A1 van Excel, en niet verdeeld over 4 kolommen zoals dat gewoonlijk zou moeten gaan met csv bestanden.
Hoe kan het dat met ShellExecute niet hetzelfde resultaat wordt geboekt als met Shell "C:\Program Files\Microsoft Office\Office\EXCEL.EXE " & App.Path & "\test.csv"?
Want met de methode die ik dus eerst gebruikte "parste" Excel het csv bestand WEL goed!
[edit] Er stonden aanhalingstekens in de title, kon React blijkbaar niet hebben...
Moet zijn: [vb6 & Excel 2K] Met ShellExecute een csv-bestand openen...
[ Voor 11% gewijzigd door DPLuS op 01-12-2003 17:29 ]