- ベストアンサー
型の変換の仕方がわかりません
GetINIValueの返す値をADSWへ代入したいのですが、どうしたらいいでしょうか? Dim ADSW As Integer Dim j As Integer For j = 0 To 10 ADSW = GetINIValue("sw" & Format$(j)) Next j ちなみに GetINIValueは、別途iniファイルを参照し、それに対応するString型の値を返す関数です iniファイルの中身 sw1 = 0000 sw2 = FFFF sw3 = 1256 sw4 = A05B です。ちなみに、対応する値は16進数です。 GetINIValueの中身は省略しますが、正しく対応する値を返せています。 よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
そのGetINIValueという関数の戻り値はString型なんだから、 Dim ADSW As Integer ADSW = GetINIValue("sw" & Format$(j)) これは間違い。 流れ 1.GetINIValue関数からINIの値を読み取る 2.String型変数で一旦受け取る 3.16進数かどうかを精査する(0~9、A~F以外の値は16進数じゃないもんね) 4.Val関数あたりで変換する Dim ADSW As Integer Dim j As Integer Dim strHexBuff As String For j = 0 To 10 strHexBuff = GetINIValue("sw" & Format$(j)) ' この辺にstrHexBuff変数内に16進数で使用される文字のみである事を確認する処理 ADSW = Val("&H" & strHexBuff) Next j
その他の回答 (2)
- kmetu
- ベストアンサー率41% (562/1346)
No1です失礼しました16進数ですね Val("&H" & GetINIValue("sw" & Format$(j)))) でいけると思います。
- kmetu
- ベストアンサー率41% (562/1346)
CInt(GetINIValue("sw" & Format$(j))) でしょうか 参考にしてください 暗黙の型変換と明示的な型変換 http://msdn.microsoft.com/ja-jp/library/kca3w8x6(VS.80).aspx