Microsoft 製品に組み込まれている Visual Basic の実装。
早々にご返信いただきまして、ありがとうございます。
Excelは2019、Excelのビット数は64bitとなります。
本ご質問を送信する際に OSやExcelのバージョンの選択欄があった為 記載を省きましたが、表示されておりませんでした・・・
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
Excelにて、Windows API 関数 「EnumWindows」「EnumChildWindows」を使用しております。
Windows7(32bit)では正常に動作しましたが、Windows10(64bit)では異常終了します。
Windows10(64bit)にて、以下のように宣言すると、異常終了します。
Private Declare PtrSafe Function EnumWindows Lib "user32.dll" (ByVal lpEnumFunc As LongPtr, ByVal lParam As LongPtr) As Long
しかし、以下のように宣言すると、正常に動作しました。
Private Declare PtrSafe Function EnumWindows Lib "user32.dll" (ByVal lpEnumFunc As LongPtr, ByVal lParam As Long) As Long
恐らくではありますが、引数「lParam」につきまして、64bit環境下でも32bitのままではないでしょうか。
これは意図的なものでしょうか。それとも、不具合でしょうか。
型「LPARAM」の、VBAとの互換性につきましては、以下のページに記載がございます。
引数「lParam」に変数のアドレス(64bit)を指定したくても出来ず、困っております。
ご回答いただけますと、幸いです。
Microsoft 製品に組み込まれている Visual Basic の実装。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
早々にご返信いただきまして、ありがとうございます。
Excelは2019、Excelのビット数は64bitとなります。
本ご質問を送信する際に OSやExcelのバージョンの選択欄があった為 記載を省きましたが、表示されておりませんでした・・・
Excelのバージョンと、Excelが64bit版なのか32bit版なのか確認したほうがいいでしょう。
Windowsが64bit版でもExcelが32bit版であれば、32bit版として処理する必要があります。
Excelのバージョンと、Excelが64bit版なのか32bit版なのか確認したほうがいいでしょう。
Windowsが64bit版でもExcelが32bit版であれば、32bit版として処理する必要があります。