No.1ベストアンサー
- 回答日時:
田吾作7です。
Nullの扱いですが、それはあくまでCの記述であって、CのNullとVBのNullは意味が違います。
GetPrivateProfileStringではvbNullStringを使用します。
Public Declare Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringA" ( _
ByVal lpApplicationName 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 Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" _
(ByVal lpBuffer As String, ByVal nSize As Long) As Long
'ウィンドウズディレクトリを返す
Public Function GetWinDir() As String
Dim lpBuffer As String * 260
Call GetWindowsDirectory(lpBuffer, Len(lpBuffer))
GetWinDir = Left(lpBuffer, InStr(lpBuffer, Chr$(0)) - 1)
If Right(GetWinDir, 1) <> "\" Then GetWinDir = GetWinDir & "\"
End Function
'INIファイルからセクションを列挙する
Private Sub Main()
Dim lngRetValue As Long 'ステータス
Dim strIniFileName As String '設定ファイル名
Dim strSectionName As String 'セクション名
Dim strKeyName As String 'キー名
Dim strDefault As String 'デフォルト値
Dim strReturned As String * 1023 '値を返す文字列
Dim wkVal As Variant
Dim i As Long
'イニシャルファイルの指定
strIniFileName = GetWinDir & "System.ini"
'セクションにNULLをセット
strSectionName = vbNullString
'キーにNULLセット
strKeyName = vbNullString
'見つからないときに返す文字列
strDefault = "キーが見つからない"
'キーが帰る文字列に領域をセット
strReturned = String(Len(strReturned), vbNullChar)
'キーの取得
lngRetValue = GetPrivateProfileString _
(ByVal strSectionName _
, ByVal strKeyName _
, ByVal strDefault _
, strReturned _
, ByVal Len(strReturned) _
, ByVal (strIniFileName & vbNullChar))
'キーの取得成功
If lngRetValue >= 0 Then
'結果の出力
wkVal = Split(strReturned, vbNullChar)
For i = LBound(wkVal) To UBound(wkVal)
Debug.Print wkVal(i)
If wkVal(i) = "" Then
Exit For
End If
Next i
'キーの取得失敗
Else
Debug.Print "失敗しました"
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの条件付き書式 4 2023/04/17 11:05
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- Excel(エクセル) Excelでnullになるような式のセルをマクロで空白行と認識させるにはどうすればいいですか? 3 2023/03/13 13:42
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- PHP PHPSpreadsheetによる書き出し時のページネーション方法について 1 2023/03/20 10:35
- C言語・C++・C# C++の標準入力の書き方 6 2023/02/23 23:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プラス(足す)キーはどうやっ...
-
キーボードがCtrlキーが押され...
-
パソコンの青い線枠が消えませ...
-
PDF-XChange Viewer 全画面表示...
-
矢印キーのロック解除方法
-
メールアドレスの作成の際上バ...
-
Scroll Lockが勝手に有効になる...
-
NumLockが勝手に切り替わる?
-
「か」を数字で表すとどうなり...
-
Ctrlキー+HomeキーでセルA1へ移...
-
Shiftキーのはめ方を教えてくだ...
-
(word) 文字列の上に線を引く方法
-
「(アクサングラーブ)キー」と...
-
プーリーのキーが外れない
-
exp(13.4)を関数電卓で計算する...
-
Outlook2010 のメール内の画像...
-
キーボードの上部にあるランプ...
-
ショートカットキーが表示され...
-
PgDn、PgUpの設定が急に変わっ...
-
パワーポイントの他のプログラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プラス(足す)キーはどうやっ...
-
キーボードがCtrlキーが押され...
-
「か」を数字で表すとどうなり...
-
矢印キーのロック解除方法
-
Scroll Lockが勝手に有効になる...
-
Ctrlキー+HomeキーでセルA1へ移...
-
パソコンの青い線枠が消えませ...
-
メールアドレスの作成の際上バ...
-
PgDn、PgUpの設定が急に変わっ...
-
「(アクサングラーブ)キー」と...
-
プーリーのキーが外れない
-
左右の表のキー位置を合わせたい
-
(word) 文字列の上に線を引く方法
-
エクセルで複数行に散らばった...
-
Shiftキーのはめ方を教えてくだ...
-
hpのelitebook使ってますが最近...
-
VSCodeで上書きモードにならない
-
Access2010 Enterで次テキスト...
-
NumLockが勝手に切り替わる?
-
PDF-XChange Viewer 全画面表示...
おすすめ情報