アプリ版:「スタンプのみでお礼する」機能のリリースについて

タイトルの通り、これまでAccess2016環境で動作できていたVBAがM365環境ではエラー発生により、動作できなくなりました。
具体的には、以下構文になるのですがどのように修正すればよいかをアドバイスください。
Private Declare Function GetOpenFileName Lib "XXX.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

当方の実施した処置としては、Declareの後にPtrsafeを挿入し実行してみたのですが、今度はファイルダイアログ自体が開かなくなった為、他の対応が必要なのではと考えています。現時点では、GetOpenFileの構文→FileDialogと、構文をより一般的なものへ変更するというのを一案として考えています。

つきましては、以下アドバイスをください。
(1)そもそも上記構文をM365環境で動作させるにはどのようにVBA修正すればよさそうでしょうか
(2)修正案として、当方提案内容(GetOpenFileの構文→FileDialogへ変更)が妥当である場合、どのように構文変更するのがよさそうでしょうか。

(1)のみ、(2)のみの回答でも構いません。
何かしらアドバイスを頂けるとたすかります。よろしくお願いいたします。

A 回答 (1件)

こんにちは



365環境というよりも、VBA7に変わったか、64bitに変わったか(あるいは両方)によるものと推測します。
(何がどう変わったかは、質問者様にはわかっているはずと思います)

確か、宣言文だけでなく、引数や戻り値の型等に関しても修正が必要だったはずです。

詳しくは、以下あたりをご参照ください。
https://keirivba.hateblo.jp/entry/2017/11/03/234 …
https://www.excel-chunchun.com/entry/20200809-vb …


内容的にFileDialogで済む処理であるのなら、面倒なAPIを利用するよりもそちらで充分とも思いますが・・
https://learn.microsoft.com/ja-jp/office/vba/api …
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!