Excel VBA 64bit版の「Declare ステートメント」エラーを解消する方法
はじめに
Windows10に買い替えてExcelも64bit版をインストールしました。 特に問題ないだろう…と高を括っていたのですが、32bit版から修正しないと動かないVBAが出てきましたので、 後学のためにも書き残しておきたいと思います。
Win32 APIシステムプログラミング with Visual C++ 2008
- 作者:北山 洋幸
- 出版社/メーカー: カットシステム
- 発売日: 2008/10/01
- メディア: 単行本
問題が起こったマクロはどんな内容?
Win32API URLDownloadToFileでファイルをダウンロードするマクロでした そりゃ~Win32APIって名前なんだから32bit専用ですよね~ 64bit用に修正しなきゃ動きませんよね~💦 tonari-it.com
Declare ステートメントの確認および更新のエラー
エラーメッセージのキャプチャです。
Declare FunctioをDeclare PtrSafe Functionに修正
エラーメッセージにすべて答えが書いてあります。 * 修正前 * 修正後 FunctionのまえにPtrSafeを付け加えることで、あっさりエラーは消えました。 これでマクロを実行できる~と思いきや、今度は別のエラーが発生!
コンパイルエラー 型が一致しません
型が違いますって?アイエエエエ! ニンジャ!? ニンジャナンデ!? どう見ても整数でいいでしょーが(# ゚Д゚) まだ子供が食べてるでしょーが!
Long型をLongLong型に修正
どうやら64bitになって扱える数値が増えたので大容量な箱にしてやる必要があるみたいです。
- 修正後 そのまんまLongを付け加えるという、なんとふざけた書き方なのだろうか? だがわかりやすくてイイ! LongLong型の詳しい解説は以下を参照ください。 cpprefjp.github.io