VBA モジュールにいくつかconst
ありますが、同じ定数を使用する他のアプリケーションがあるため、それらを INI ファイルに入れたいと思います。これは機能します:
Public Const PATH_DB As String = "\\server\folder\bdd.mdb"
ただし、これは機能しません。
Public Const PATH_DB As String = getFromIni("path","db","C:\config.ini")
Public Function getFromIni(ByVal strSectionName As String, ByVal strEntry As String, ByVal strIniPath As String) As String
Dim x As Long
Dim sSection As String, sEntry As String, sDefault As String
Dim sRetBuf As String, iLenBuf As Integer, sFileName As String
Dim sValue As String
sSection = strSectionName
sEntry = strEntry
sDefault = ""
sRetBuf = Strings.String$(256, 0) '256 null characters
iLenBuf = Len(sRetBuf$)
sFileName = strIniPath
x = GetPrivateProfileString(sSection, sEntry, "", sRetBuf, iLenBuf, sFileName)
sValue = Strings.Trim(Strings.Left$(sRetBuf, x))
If sValue <> "" Then
getFromIni = sValue
Else
getFromIni = vbNullChar
End If
End Function
# C:\config.ini
[path]
db=\\server\folder\bdd.mdb
私の getFromIni 関数は実際にはかなりうまく機能しますが、定数を宣言したいときはそうではありません (まったくコンパイルされません)。代わりにグローバル変数を試しましたが、何らかの理由で機能しません。同じプロジェクト内の別のフォームから使用すると、変数が見つかりません(constとして宣言されている場合にのみ機能しますが、宣言できません)関数から値を取得するときの const として)。
どうしたの?