見出し画像

パブリック変数の使い方

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変数は、モジュール間で変数の値を共有したり、アプリケーション全体で設定情報を保持したりする際に便利な機能です。ぜひ活用してみてください。

この記事が気に入ったらサポートをしてみませんか?