64 bit版ExcelでVBAマクロを走らせたら
もともと32 bit版Excelで作ったVBAマクロを64 bit版Excelで実行したら、Declare文でDLL内の関数を呼び出しているところでエラーとなった。
表示されたメッセージはPtrSafeをどうとか書いてあるので、検索して調べてみた。DLLの関数の呼出しに引数としてLongなどを与えてある場合はLongPtrへ型を変えた上でDeclare PtrSafeと書く必要があるとのこと。幸い(?)自分が作ったマクロの引数はStringだけなので、PtrSafeを加えるだけで問題なく動いた。
指定したネットワーク上のフォルダでファイルダイアログを開くために、カレントディレクトリをUNCパスで指定するためにDLLの中の関数を呼び出しているのだが、方法を変えたほうが良さそうだ。
今まではApplication.GetOpenFilenameでファイルを選んでいた。これからはFileDialogオブジェクトを使ってみよう。
| 固定リンク
「Excel」カテゴリの記事
- Excel for Macのアップデート失敗(2025.02.16)
- Officeのライセンス認証が外れた(2023.01.01)
- FormsとSharePointとExcel VBA(2021.11.01)
- 64 bit版ExcelでVBAマクロを走らせたら(2021.11.01)
- Excelのリボンに「アドイン」が表示されなくなった(2021.05.23)


コメント