アクセス数: アクセス数
レジストリ


健康情報 ⇒ どこへ向かって・・・ ⇒ VBAトップ ⇒ レジストリ


一人一人設定事項が異なっていたり、表に出さない細かな設定など、レジストリに格納すると便利です。


サンプル

'/*----------------------------------------------------

'日付によって消費税率を変更させるプログラム(標準モジュール)

'----------------------------------------------------*/

Option Explicit

Public Const gcstrAppName As String = "VBA解説"

Public Function setTaxRate(sglTaxRate As Single, Optional dtTargetDate As Date = 1) As String
    RegS "TAX_RATE", CStr(dtTargetDate), CStr(sglTaxRate)
    setTaxRate = "完了しました"
End Function

'第三引数(intFraction)⇒0(切捨て)1(切り上げ)2(四捨五入)
Public Function TaxEx(price As Single, dtTargetDate As Date, Optional intFraction As Integer = 0) As Integer
    '前処理
    TaxEx = price

    Dim varResult As Variant

    'バリアント型配列にレジストリの値を格納
    varResult = GetAllSettings(gcstrAppName, "TAX_RATE")

    Dim i As Integer
    Dim dtDate As Date
    Dim prevDate As Date
    For i = 0 To UBound(varResult)
    '日付を一時的に格納
        dtDate = varResult(i, 0)

        If dtTargetDate >= dtDate Then
        '前回日付より経過しているかどうか判定
            If dtDate > prevDate Then
                '計算
                '端数処理(blnFraction)
                    If intFraction = 0 Then '切り捨て
                        TaxEx = Int(price * varResult(i, 1))
                    ElseIf intFraction = 1 Then '切り上げ
                        TaxEx = Int(price * varResult(i, 1) + 0.99)
                    Else '四捨五入
                        TaxEx = Int(price * varResult(i, 1) + 0.5)
                    End If

                    prevDate = dtDate
            End If
    End If
    Next

End Function

'レジストリセーブ
Sub RegS(strSection As String, strKey As String, strSetting As String)
    SaveSetting gcstrAppName, strSection, strKey, strSetting
End Sub

'レジストリ読み込み(一応作成)
Function RegG(strSection As String, strKey As String) As String
    RegG = GetSetting(gcstrAppName, strSection, strKey)
End Function

 



上の例では、functionプロシージャによって、任意の日付に対する消費税率を設定することができます。

excelのシートで設定し、利用することができます。


設定例

=SETTAXRATE(1.5,"10/04/01")

2010年4月1日より税率50%という設定

設定完了後、式を設定したセルには「完了しました」と表示されるので、消してしまって構いません。


利用時には、

=TAXEX(100,"10/05/01",1)

などとすると結果が返ります。

TAXEX( [税抜き価格] , [対象日付] , [0(切り捨て)1(切り上げ),2(四捨五入)※初期値は0])

それぞれの引数は他のセルを参照してもよいです。

例:=taxex(a1,b1,1)



●レジストリへの保存

SaveSetting appname, section, key, setting

同じキーであれば上書きされます。


●レジストリからの読み出し

GetSetting(appname, section, key[, default])


●レジストリの内容を全て読み出す

GetAllSettings(appname, section)

variant型変数(二次元配列)に格納できます。

⇒variant([0〜],0) = key

⇒variant([0〜],1) = setting

※読み込み方は上のサンプルを参照してください。


●レジストリの内容を消す

DeleteSetting appname, section[, key]



レジストリの内容の保管場所

スタート⇒ファイル名を指定して実行⇒regedit(Enter)

HKEY_CURRENT_USER

 ⇒Software

  ⇒VB and VBA Program Settings

        ⇒appname

            ⇒section

                ⇒key

※見るだけにして、変更などはしない方が無難です。



様々な値をレジストリに登録することによって、ユーザーごとの設定が可能となりますので、使い道は多くあります。また、設定の変更を配布したい場合にも、レジストリだけを修正するようなファイルで賄えるなら、Excel上で独自に設定した項目などが変更される恐れも無いため有効です。

さらに、いくつものファイルにまたがって利用できる点も大きいです。他のファイルの状況を保存しておくことによって、振る舞いを変えるような処理もできます。



ホーム

 

ひとつ上のページへ はじめに マクロを使う プログラムを動かすために 変数について エラーの場合の処理 計算あれこれ 文字列を操作しよう 命令の種類 コントロール 型について レジストリ Optional 計算結果を返す カタカナ→ローマ字 Option Explicit Application.ScreenUpdating = False Nバック脳トレ


取扱商品一覧へ  ご注文画面へ

 

本物商品、健康情報の「ほんもの冒険スタジオ」
カリカパパイヤ発酵食品、ペット用品の「パパナピ!」
インフォメーション


営業日

月〜土曜日(10:00am〜6:00pm) 日祝定休日


ご注文・お問い合わせについて

・ 当サイトにて随時(24時間)受付しております。
・ お電話、ファックス、メールでのご注文も随時受付しております。
・ 午後3時までのご注文分につきましては即日発送いたします。

※日曜、祝日のご注文分につきましては翌営業日発送となります。
なお、在庫の状況によって発送が遅れる場合もございますのでご了承願います。


〜当サイトからのご注文〜

取り扱い商品一覧画面より >>

※ 取り扱い商品一覧画面の画像をクリックすることにより各商品の詳しい説明画面に移ります。


〜配達日及び配達時間帯のご指定〜

・お届けの日及びお届け時間帯につきましては、ご都合の良い日時をお選びいただけます。

[午前中] [14〜16時] [16〜18時] [18〜20時] [19〜21時]


「ほんもの冒険スタジオ」運営


配送料、代金引換手数料について

〜配送料〜

・1回のお買い上げ金額が5,000円(税込み)以上の場合には、配送料は日本全国無料とさせていただきます。

・1回のお買い上げ金額が5,000円(税込み)に満たない場合には、配送料650円(税込み)をご負担願います。(一部例外もございます。)


〜代金引換手数料〜

・代金引換手数料につきましては、全額当方で負担させていただきます。


お支払い方法

〜代金引換のお客様〜

・現金、クレジットカード、デビットカードのいずれかでのお支払いとなります。

カード一覧


〜クレジットカード決済サービス〜

<直接決済は終了しました>

 ペイメント

・お客様登録画面(ご希望商品選択後)にて簡単決済

 カード一覧


〜銀行振込のお客様〜

・お振込確認後直ちに発送いたします。(お振込手数料はご負担願います)

お振込先:PayPay銀行  (0033) ビジネス営業部 (005)

 (普通) 1 5 1 8 4 1 7  ヤマモトケンコウドウヤマモトマサハル


Copyright(C) 2005-2023 山本健康堂