円周率の値は3.14、地球の引力は9.8 m / s ^ 2 ^、VBAなどに関心があります。これらはすべて定数であり、変化しません。

image

VBAでは、プログラムで値を変更できない変数を定義できます。 VBAプログラマーは、これらの定数値をプログラム内で独自に定義して、何度も使用します。

VBAで定数値を定義する方法は?キーワードConst *を使用して、VBAで定数を宣言します。

VBAで定数変数を宣言する構文は次のとおりです。

[<Scope Specifier>] Const <VarName> as <variable_type> = <value>

link:/general-topics-in-vba-excel-vba-variable-scope
=== `についてはこちらをご覧ください。

注:VBAで定数を宣言するためにDimキーワードを使用することはありません。

<VarName>:定数変数の名前です。

<variable_type>:定数のタイプ。たとえば、整数、文字列、日付などです。

<値>:*定数変数の値。

定数変数の簡単な例は次のとおりです。

Const pi as double = 3.14

ここでは、piの定数値を変数named_pi_で宣言しました。これで、このpiをプログラムで使用できます。値は常に3.14になります。定数変数の値を変更しようとすると、ExcelVBAはエラーメッセージをポップアップ表示します。

VBA定数変数の例次のコードを調べてください。

Const pi As Double = 3.14

Const rad As Double = 6371

Sub Earth()

sArea = 4  pi  Sqr(rad)

Debug.Print sArea

End Sub

Sub Mars()

rad = 3389.5

sArea = 4  pi  Sqr(rad)

Debug.Print sArea

End Sub

ここでは、piとradの2つの定数を定義しました。円周率の値は3.14で、ラジアンは地球の半径である6371です。

さて、最初のサブ地球を実行すると、それは完全に正常に機能し、地球の表面積を印刷します。

次のサブ火星では、火星の半径が異なるため、定数ラジアンを再定義しました。このプログラムを実行すると、「定数への割り当ては許可されていません」というエラーがスローされます。

image

VBAで定数を再初期化する方法

上記の例で見たように、定数に新しい値を割り当てることはできません。はい、できません。

ただし、同じ名前を別の固定値として使用する必要がある場合は、割り当ての前にConst * keywordを使用してください。

以下のコードは完全に機能します。

Const pi As Double = 3.14

Const rad As Double = 6371

Sub Earth()

sArea = 4  pi  Sqr(rad)

Debug.Print sArea

End Sub

Sub Mars()

Const rad = 3389.5

sArea = 4  pi  Sqr(rad)

Debug.Print sArea

End Sub

上記のサブルーチンは、エラーなしで完全に機能します。しかし、私はこのアプローチをお勧めしません。最良の方法は、パブリック定数とプライベート定数を識別し、それらを別々に定義することです。そして、これは私たちを次のセグメントに導きます。

VBAのパブリック定数とプライベート定数上記の例で学習したように、一部の定数はユニバーサルであり、一部はオブジェクトごとに異なる場合があります。同様に、円周率の値は宇宙全体で一定ですが、惑星の数は太陽系ごとに異なり、惑星の半径は惑星ごとに異なります。

地球の半径は宇宙ではなく、地球に対して一定であるため。

同様に、プログラムでは、いくつかの定数がサブとモジュールにプライベートになり、いくつかはVBAプロジェクト全体のパブリック定数になります。あなたの仕事はそれらを識別し、それらを異なって宣言することです。

別の例を見てみましょう:

Public Const pi As Double = 3.14     ' This can be accessed from any module in the project

Private Const planets As Integer = 8 ' this is private to this module

Sub Earth()

Const rad As Double = 6371    'Private to this subroutine. Can't be accessed outside

sArea = 4  pi  Sqr(rad)

Debug.Print sArea

End Sub

Sub Mars()

Const rad As Double = 3389.5 'Private to this subroutine. Can't be accessed outside

sArea = 4  pi  Sqr(rad)

Debug.Print sArea

End Sub

これは、指定する単純な変数スコープです。可変スコープ設定 `link:/ general-topics-in-vba-excel-vba-variable-scope [ここで詳細]`について読むことができます。

そうですね、これがExcelVBAで定数を宣言して使用する方法です。私は創造的な方法で説明しようとしました。私は十分に説明できたと思います。疑問がある場合は、以下のコメントセクションで質問してください。よろしくお願いいたします。

関連記事:

link:/ general-topics-in-vba-excel-vba-variable-scope [Excel VBA Variable Scope] |定義された変数にアクセスできる場所を定義する変数アクセス指定子があります。 ExcelVBAも例外ではありません。 VBAにもスコープ指定子があります。これらのスコープ指定子を使用して、ExcelVBAの変数の可視性/スコープを設定できます。

link:/ cells-ranges-rows-and-columns-in-vba-what-is-the-difference-between-byref-and-byval-arguments-vba-interview-question [ByRef and ByVal Arguments] |いつ引数がByRef引数として別のサブまたは関数に渡されると、実際の変数の参照が送信されます。変数のコピーに加えられた変更は、元の引数に反映されます。

link:/ files-workbook-and-worksheets-in-vba-delete-sheets-without-confirmation-prompts-using-vba-in-microsoft-excel [MicrosoftExcelのVBAを使用して確認プロンプトなしでシートを削除する] |以降あなたはVBAを使用してシートを削除しています、あなたはあなたが何をしているのか知っています。この警告を表示せず、いまいましいシートを削除しないようにExcelに指示します。

link:/ files-workbook-and-worksheets-in-vba-add-and-save-new-workbook-using-vba-in-microsoft-excel [Microsoft Excel2016でVBAを使用して新しいブックを追加および保存する] |このコードでは、最初にワークブックオブジェクトへの参照を作成しました。次に、新しいワークブックオブジェクトで初期化しました。このアプローチの利点は、この新しいワークブックの操作を簡単に実行できることです。保存、閉じる、削除などのように `link:/ menus-toolbars-status-bar-in-vba-display-a-message-on-the-statusbar-using-vba-in-microsoft-excel [Display A Message On ExcelVBAステータスバー] `Excelのステータスバーはコードモニターとして使用できます。 VBAコードが長く、VBAを使用していくつかのタスクを実行する場合、画面のちらつきが表示されないように、画面の更新を無効にすることがよくあります。 `link:/ general-topics-in-vba-turn-off-warning-messages- using-vba-in-microsoft-excel [Microsoft Excel2016でVBAを使用して警告メッセージをオフにする] `|このコードは、VBAアラートを無効にするだけでなく、コードの時間効率も向上させます。方法を見てみましょう。

人気の記事:

link:/ keyboard-formula-shortcuts-50-excel-shortcuts-to-increase-your-productivity [生産性を高めるための50のExcelショートカット] |あなたの仕事をより速くしてください。これらの50のショートカットにより、Excelでの作業がさらに高速になります。

link:/ forms-and-functions-introduction-of-vlookup-function [ExcelのVLOOKUP関数] |これは、さまざまな範囲やシートから値を検索するために使用される、Excelの最も使用され人気のある関数の1つです。

link:/ Tips-countif-in-microsoft-excel [COUNTIF in Excel 2016] |この驚くべき関数を使用して、条件付きの値をカウントします。特定の値をカウントするためにデータをフィルタリングする必要はありません。

ダッシュボードを準備するには、Countif関数が不可欠です。

link:/ excel-formula-and-function-excel-sumif-function [ExcelでSUMIF関数を使用する方法] |これは、ダッシュボードのもう1つの重要な機能です。これは、特定の条件で値を合計するのに役立ちます。