[[20211206145934]] 『32bit環境で使っていたAccessを64Bit環境で使える』(お願いします) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

[削除] 『32bit環境で使っていたAccessを64Bit環境で使えるようにしたい』(お願いします)

長くなります。申し訳ありませんが、先輩たち、教えていただけますでしょうか。

グーグル先生に聞きながら、32bit環境で使っていたAccessを64Bit環境で使うため、下記のようにVBAコードへ修正しましたが、上手くいきません。(泣)
間違っているところ指摘いただけますでしょうか?以下実施しました。
?@DeclareステートメントにPtrSafe属性を追加する
?Aポインタ及びハンドルを代入する変/定数をLong型からLongPtr型に変更する

Private Declare PtrSafe Function GetOpenFileName Lib "comdlg32.dll" Alias _

    "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Boolean
Private Declare PtrSafe Function GetSaveFileName Lib "comdlg32.dll" Alias _
    "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Boolean

'[ファイルを特定]ダイアログ フィルタに使用するフィルタ文字列。
'これを開くには、ACC_CreateFilterString()を使用。既定値はすべてのファイル,*.*
Private Type ACC_OpnFileNM

    strFilter As String             '表示するフィルタの初期値、既定値は 1
    'ダイアログに表示される初期ディレクトリ名。既定値はカレントディレクトリ
    lngFilterIdx As Long
    strInitialDir As String         'ダイアログに表示される初期ファイル名、既定値は、""
    strInitialFile As String        'ダイアログに表示されるタイトル名、既定値は、""
    '拡張子が指定されなかった場合にファイルに追加する既定の拡張子。既定値はシステム値
    strDialogTitle As String
    strDefaultExtension As String   'フラグ、既定値は、フラグなし
    '選択されたファイルのフルパス。
    'ダイアログでユーザーが拡張子のないファイルを選択すると、
    '[ファイル名]ボックスのテキストだけが返される
    lngFlags As Long
    strFullPathReturn As String     '選択されたファイルの名前
    strFileNameReturn As String     'フルパスのファイル名の開始を示すオフセット
    intFileOffset As Integer        'フルパスのファイルの拡張子の開始を示すオフセット
   intFileExtension As Integer
End Type

Private Type OPENFILENAME

    lStructSize As Long
    hWndOwner As LongPtr
    hInstance As LongPtr
    lpstrFilter As String
    lpstrCustomFilter As Long
    nMaxCustrFilter As Long
    nFilterIdx As Long
    lpstrFile As String
    nMaxFile As Long
    lpstrFileTitle As String
    nMaxFileTitle As Long
    lpstrInitialDir As String
    lpstrTitle As String
    Flags As Long
    nFileOffset As Integer
    nFileExtension As Integer
    lpstrDefExt As String
    lCustrData As LongPtr
    lpfnHook As LongPtr
    lpTemplateName As Long

End Type

Private Const AllFile = "すべてのファイル"
Private Const OFN_HIDEREADONLY = &H4

Public Function GetFile(strSearchPath) As String

'[ファイルを特定]ダイアログ ボックスを表示。

< 使用 Excel:unknown、使用 OS:Windows10 >


https://elastictechdays.info/excel-macro-error-ptrsafe/

(mm) 2021/12/06(月) 17:53


コメントありがとうございます。
Declare Subがなかったので、Declare Function → Declare PtrSafe Function
のみ変更してます
(お願いします) 2021/12/06(月) 19:01

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.