Excel VBAの「GetSetting 関数」について解説します。
GetSetting 関数とは
Excel VBA の GetSetting 関数は、SaveSettingステートメントでレジストリに保存したユーザー設定から指定のキー設定値を取得するための関数です。ユーザーの環境設定やアプリケーションの動作状態を再現する際などに利用します。
GetSetting 関数の構文や実際の使い方について具体的に解説していきたいと思います。
GetSetting 関数(Visual Basic for Applications リファレンス)
構文(引数と戻り値)
Excel VBAの関数を使いこなすには、関数の構文を正しく理解しておくことが重要です。
構文
GetSetting(appname, section, key[, default])
引数
| 指定項目 | 説明 |
|---|---|
| appname | 【必須】SaveSettingで指定したアプリケーション名(文字列) |
| section | 【必須】セクション名(文字列) |
| key | 【必須】取得対象キー設定の名前(文字列) |
| default | 【省略可】値が存在しない場合に返す規定値(文字列) ※ 省略した場合は、長さ 0 の文字列 (“”)を返します |
戻り値
key に指定した項目名の値を取得して返します。
値が存在しなかった場合、default で指定した値(省略時は長さ 0 の文字列 (“”))を返します。
解説(使用例)
ここからは、サンプルを使って使用例や注意点などについて解説します。
GetSetting 関数の基本的な使い方
保存した値を GetSetting で取得
次の例は、最初にSaveSettingステートメントでWindowsレジストリにエントリを作成したうえで、GetSetting 関数を使って、レジストリから設定を取得し、MsgBoxに表示します。アプリケーション名やsection名前は、GetSettingで取得することはできないのでご注意ください。最後に、DeleteSetting ステートメントでアプリケーションのエントリを削除します。
'■GetSetting 関数サンプル(基本的な使用例)
Sub GetSetting_Sample()
'--- 設定を保存(SaveSettingステートメント)---
SaveSetting "MyApp", "UserInfo", "UserName", "kurumico"
'--- 設定を取得 ---
Dim userName As String
userName = GetSetting("MyApp", "UserInfo", "UserName", "未設定")
'--- 結果を出力 ---
MsgBox "ユーザー名:" & userName
'--- 設定を削除(DeleteSettingステートメント)---
DeleteSetting "MyApp" '"MyApp"以下をすべて削除
End Subこのコードを実行すると、レジストリに保存された「UserName」の値が取得されます。
存在しない場合は「未設定」と表示されます。表示されたMsgBoxの画像がこちらです。


SaveSettingとの関係
GetSetting は、SaveSettingステートメントで保存された値を取得するための関数です。
そのため、GetSettingだけを単独で使ってもデータは取得できません。
まず SaveSetting で設定を書き込まれている必要があります。
GetAllSettings との違い
GetAllSettings 関数は、指定したアプリ名とセクションに含まれる全てのキーと値を配列で一括取得します。対して GetSetting 関数は、特定の1項目だけ取得します。
複数の設定を一括で扱いたい場合はGetAllSettingsを使うと便利ですが、特定項目の設定値だけが必要な場合には GetSetting 関数が適しています。
まとめ
VBAの関数一覧はこちらからご参照ください。
VBAサンプルファイルダウンロードページのご案内
このページで使用したサンプルファイルの登録はありません(^^;
ページ内のコードをコピーしてご利用ください。
ダウンロードページへのリンクは下のカードクリックでジャンプできます。
よろしければご利用ください!





VBA の GetSetting 関数は、SaveSettingで登録した設定を取得する関数です。
ユーザー設定やアプリケーションの状態を簡単に取得できる便利な関数です。
設定を保存する SaveSetting とセットで使うことで、レジストリを意識せずに設定管理を実現できます。
以上、この解説が少しでもみなさまのお役に立てたなら幸いです(^^;幸いです(^^;