Bug 118246 - FILEOPEN XLSX Basic code with “GetOpenFilename” method does not work
Summary: FILEOPEN XLSX Basic code with “GetOpenFilename” method does not work
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: BASIC (show other bugs)
Version:
(earliest affected)
6.2.0.0.alpha0+
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard: target:7.4.0
Keywords:
: 126750 (view as bug list)
Depends on:
Blocks: Macro-VBA-Error423
  Show dependency treegraph
 
Reported: 2018-06-19 16:18 UTC by Gabor Kelemen (allotropia)
Modified: 2022-09-23 21:27 UTC (History)
6 users (show)

See Also:
Crash report or crash signature:


Attachments
Example file from Excel (20.50 KB, application/vnd.ms-excel.sheet.macroEnabled.12)
2018-06-19 16:18 UTC, Gabor Kelemen (allotropia)
Details
The macro in Excel and Calc side by side (353.75 KB, image/png)
2018-06-19 16:22 UTC, Gabor Kelemen (allotropia)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Gabor Kelemen (allotropia) 2018-06-19 16:18:08 UTC
Created attachment 142930 [details]
Example file from Excel

If we try to run this simple “open file dialog” macro in LibreOffice Calc, which is in the attached file, we got an error code('423' GetOpenFilename). The main reason of this error is that LibreOffice uses another File selection dialog method: CreateUnoService("com.sun.star.ui.dialogs.FilePicker")

Steps to reproduce:
1. Create a new spreadsheet with Microsoft Excel 2016/2013
2. Open the Visual Basic window
3. Add a new Module to your VBAProject
4. Use this simple code:
Sub getFileName()
Dim filename As String
filename = Application.GetOpenFilename()
MsgBox filename
End Sub
5. Save the file as *.xlsm
7. Open the file with LibreOffice Calc. Run the macro.

Actual results: The file dialog is opened in Microsoft Office Excel, but If We use this “GetOpenFilename” method in LibreOffice Calc, we get an error message. If we use the LibreOffice module CreateUnoService("com.sun.star.ui.dialogs.FilePicker") we don’t gt an error message.

Expected results:
We should not get an error message if we use the “GetOpenFilename” method.


Version: 6.0.0.0.beta1+
Build ID: 29228e83df009cf76ac819ed024527be1092f065
CPU threads: 4; OS: Windows 6.1; UI render: default; 
TinderBox: Win-x86@42, Branch:libreoffice-6-0, Time: 2017-12-04_23:15:34
Locale: hu-HU (hu_HU); Calc: group threaded
Comment 1 Gabor Kelemen (allotropia) 2018-06-19 16:22:39 UTC
Created attachment 142931 [details]
The macro in Excel and Calc side by side
Comment 2 himajin100000 2018-06-19 17:01:43 UTC
The problem is not in FilePicker. the responsibility is on ScVbaApplication. This class currently does not have GetOpenFilename() method.

https://opengrok.libreoffice.org/more/core/sc/source/ui/vba/vbaapplication.cxx?q=ScVbaApplication
Comment 3 Buovjaga 2018-06-24 18:52:54 UTC
NEW per comment 2
Comment 5 raal 2021-10-02 14:18:52 UTC
*** Bug 126750 has been marked as a duplicate of this bug. ***
Comment 6 Commit Notification 2022-01-22 00:39:42 UTC
Tomaž Vajngerl committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/571438a34ad9aba0d496a89e8345851331740fbd

tdf#118246 add support for Application.GetOpenFilename func.

It will be available in 7.4.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 7 Justin L 2022-09-23 21:27:59 UTC
Is this fixed now?