« グラフィックボードが壊れた | トップページ | 起動ディスクがHDDのWindows PCを少しだけ快適に »

2021年11月 1日 (月)

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オブジェクトを使ってみよう。

|

« グラフィックボードが壊れた | トップページ | 起動ディスクがHDDのWindows PCを少しだけ快適に »

Excel」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« グラフィックボードが壊れた | トップページ | 起動ディスクがHDDのWindows PCを少しだけ快適に »