パブリック変数の使い方
Excel VBAにおけるパブリック変数の使い方
パブリック変数とは、プロジェクト内のすべてのモジュールで共有して利用できる変数です。
モジュールをまたいで変数の値を保持したい場合などに便利です。
宣言方法
パブリック変数を宣言するには、変数名の前にPublicキーワードを付けます。
宣言場所は、モジュールの先頭にある宣言セクションとなります。
VBA
Public 変数名 As データ型
コードは注意してご使用ください。
例
VBA
Public count As Integer
Public message As String
コードは注意してご使用ください。
モジュールレベル変数と同様に、Public変数もプロシージャの外で宣言されます。
そのため、宣言されたモジュール内であれば、どのプロシージャからも直接アクセスすることができます。
具体的な利用例
以下、Public変数の具体的な利用例をいくつかご紹介します。
1. モジュール間で変数の値を共有する
異なるモジュールで処理を分担する場合、モジュール間で変数の値を共有したいことがあります。
そのような場合に、Public変数が便利です。
例:合計金額を各モジュールで共有する
モジュール1で注文明細を読み込み、合計金額を計算します。
この合計金額を、モジュール2で請求書を作成するために利用します。
モジュール1
VBA
Public totalAmount As Double
Sub CalculateTotal()
' 注文明細を読み込み、合計金額を計算
totalAmount = 0
For Each row In ThisWorkbook.Worksheets("注文明細").Rows
If Not IsEmpty(row.Cells(1).Value) Then
totalAmount = totalAmount + row.Cells(2).Value
End If
Next row
End Sub
コードは注意してご使用ください。
モジュール2
VBA
Sub CreateInvoice()
' モジュール1で計算された合計金額を取得
Dim invoiceAmount As Double
invoiceAmount = totalAmount
' 請求書を作成
' ... (invoiceAmount変数を使用して請求書を作成)
End Sub
コードは注意してご使用ください。
2. アプリケーション全体で設定情報を保持する
アプリケーション全体で共通して使用する設定情報を保持する場合にも、Public変数が便利です。
例:フォントサイズを設定する
アプリケーション全体で使用するフォントサイズを、Public変数に設定します。
VBA
Public fontSize As Integer
Sub SetFontSize()
fontSize = 12 ' フォントサイズを12ptに設定
End Sub
Sub ApplyFontSize()
' 各ワークシートのフォントサイズを設定
For Each ws In ThisWorkbook.Worksheets
ws.DefaultFont.Size = fontSize
Next ws
End Sub
コードは注意してご使用ください。
注意点
Public変数は、プロジェクト内のすべてのモジュールからアクセスできるため、意図せぬ値の変更に注意する必要があります。
特に、複数の開発者が同じプロジェクトに関わる場合などは、変数のアクセス範囲を明確にしておくことが重要です。
また、Public変数はグローバル変数と同じように扱われるため、変数のスコープを意識したプログラミングを心がける必要があります。
変数のスコープについては、以下のリファレンスを参照してください。
その他
Public変数の宣言と同時に初期値を設定することもできます。
VBA
Public count As Integer = 0
Public message As String = "Hello, World!"
コードは注意してご使用ください。
Public変数は、モジュールだけでなくクラスでも宣言することができます。
VBA
Public Class MyClass
Public name As String
Public age As Integer
' ... (プロシージャ)
End Class
コードは注意してご使用ください。
以上、Excel VBAにおけるPublic変数の使い方について説明しました。 Public変数は、モジュール間で変数の値を共有したり、アプリケーション全体で設定情報を保持したりする際に便利な機能です。ぜひ活用してみてください。
この記事が気に入ったらサポートをしてみませんか?