前提・実現したいこと
Access2013のmdbモジュールに標準モジュール(拡張子は.bas)を使用し定義ファイル(拡張子は.ini)から値を読みこむプログラムを作っています。
定義ファイル内の項目に値が入力されていないものをLong型の変数に値を格納した際の入力値チェックを実装したいのですが、うまく実現できません。
申し訳ありませんがご教授頂けますと幸いです。
発生している問題・エラーメッセージ
実行時エラー'13': 型が一致しません。
該当のソースコード
<xxx.ini> [testConfig] ;本来の用途は以下 ;testValue = 1 testValue = <Config.bas> Option Compare Database Option Explicit Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _ (ByVal lpAppName As String, _ ByVal lpKeyName As Any, _ ByVal lpDefault As String, _ ByVal lpReturnedString As String, _ ByVal nSize As Long, _ ByVal lpFileName As String) _ As Long Public Function GetConfig() As Boolean Dim fso As Object Dim sPath '// INIファイルのパス Dim sValue As String '// 取得値 Dim lSize As Long '// 取得値のサイズ Dim lRet As Long '// 戻り値 lSize = 10 '入力チェックをしたい変数 Dim testValue As Long Set fso = CreateObject("Scripting.FileSystemObject") 'モジュールと同じ階層のiniファイルのパスを取得 sPath = "C:\xxx\xxx.ini" '// 取得バッファを初期化 sValue = Space(lSize) ' 証明書の有効期限(年) lRet = GetPrivateProfileString("testConfig", "testValue", "non", sValue, lSize, sPath) testValue = Trim(Left(sValue, InStr(sValue, Chr(0)) - 1)) '↓ここを実装したい '定義ファイルの定義値が"testValue ="の時、戻り値をfalseにする処理 If testValue = 0 Then GetConfig=false End If End Function
試したこと
デバックモードでtestValue = Trim(Left(sValue, InStr(sValue, Chr(0)) - 1))実行時のtestValueの値を調べたところ0であったため、以下の条件で実行したところ
If testValue = 0 Then
GetConfig=false
End If
こちらのエラーが発生しました。
実行時エラー'13':
型が一致しません。
補足情報(FW/ツールのバージョンなど)
OS:Windows8
アプリケーション:Access2013
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/17 02:37