カテゴリ: VB.NET 更新日: 2025/12/22

VB.NETでSharedメンバーを完全ガイド!初心者でもわかるオブジェクト指向とクラスの基礎

VB.NETでSharedメンバーを定義する方法
VB.NETでSharedメンバーを定義する方法

先生と生徒の会話形式で理解しよう

生徒

「VB.NETのクラスでSharedってよく見るんですけど、どういうときに使うんですか?」

先生

「Sharedは、クラスをつくらなくても使える特別なメンバーを定義するときに使うキーワードです。」

生徒

「クラスをつくらなくても使えるって、どういうことですか?普通はnewでオブジェクトを作りますよね?」

先生

「そうですね。でもSharedを使えば、クラスそのものに属する変数やメソッドを扱えるようになりますよ。今から詳しく説明していきましょう。」

1. Sharedメンバーとは?

1. Sharedメンバーとは?
1. Sharedメンバーとは?

VB.NETのSharedメンバーとは、クラスに属していて、オブジェクトを作らなくても使える特別な機能です。通常、クラスの変数やメソッドを使う場合は、newを使って「インスタンス(実体)」を作ります。しかしSharedを使うと、クラス名だけでアクセスできます。

例えば、家電のリモコンを考えてみましょう。普通の変数やメソッドは「テレビ1台ごとの設定」です。一方Sharedは「全てのテレビに共通の設定」のようなイメージです。どのテレビでも同じ情報を共有して使える、そんな役割がSharedです。

プログラム初心者でも、Sharedを理解することでクラス設計オブジェクト指向の考え方がより分かりやすくなります。特に、複数のオブジェクト間で情報を共有したい場面や、インスタンス化せずに利用したい便利な処理をつくりたいときに役立ちます。

2. Sharedメンバーはどんな場面で使える?

2. Sharedメンバーはどんな場面で使える?
2. Sharedメンバーはどんな場面で使える?

Sharedメンバーは、VB.NETのクラスプログラミングで幅広く使われます。たとえば次のような場面です。

  • アプリ全体で共通の値を管理したいとき(例:カウンター、設定値)
  • 便利なメソッドをまとめた「ユーティリティクラス」を作るとき
  • インスタンスを作らずに計算だけしたいとき
  • 複数のオブジェクトで同じ情報を共有するとき

具体例として、アクセス回数を数える「ページカウンター」を考えてみましょう。もしSharedを使わずに各オブジェクトごとにカウンターを持たせてしまうと、データが増えて管理が難しくなります。しかしSharedならアプリ全体で1つの数を共有できるため、動作がわかりやすくなります。

3. Shared変数の定義方法

3. Shared変数の定義方法
3. Shared変数の定義方法

Shared変数とは、クラス全体で共有される変数のことです。複数のインスタンスを作っても、同じ値を読み書きできます。書き方は簡単で、変数の前にSharedと書くだけです。


Public Class Counter
    Public Shared Count As Integer = 0
End Class

このようにすると、Countはオブジェクトを作らずに次のようにアクセスできます。


Counter.Count += 1
Console.WriteLine(Counter.Count)

4. Sharedメソッドの定義方法

4. Sharedメソッドの定義方法
4. Sharedメソッドの定義方法

Shared変数に続いて、Sharedメソッドもクラスから直接呼び出せる便利な機能です。インスタンスを作らずに、クラス単位で共通の処理をまとめたいときに使います。


Public Class MathUtil
    Public Shared Function Add(a As Integer, b As Integer) As Integer
        Return a + b
    End Function
End Class

呼び出し方は次の通りです。


Dim answer = MathUtil.Add(5, 3)
Console.WriteLine(answer)

5. すべてのインスタンスで共有される仕組み

5. すべてのインスタンスで共有される仕組み
5. すべてのインスタンスで共有される仕組み

Sharedメンバーは、クラスそのものに属するため、どのオブジェクトからでも同じ値にアクセスできます。初心者の方は「インスタンス」と「Shared」の違いが少しわかりにくいかもしれません。

インスタンス(オブジェクト)は「家電の1台1台」。Sharedは「全ての家電に共通の説明書」のようなイメージです。説明書は1つあれば充分であり、すべての家電から使用できます。

プログラム初心者でも、こうした例えで理解すると、VB.NETのSharedが持つ「共有のしくみ」がよくわかるようになります。

6. Sharedが便利な実例:アクセス回数を数える

6. Sharedが便利な実例:アクセス回数を数える
6. Sharedが便利な実例:アクセス回数を数える

ここでは、Sharedの便利さがよくわかる短いサンプルを紹介します。


Public Class AccessCounter
    Public Shared TotalAccess As Integer = 0

    Public Sub New()
        TotalAccess += 1
    End Sub
End Class

Module Program
    Sub Main()
        Dim a1 As New AccessCounter()
        Dim a2 As New AccessCounter()
        Dim a3 As New AccessCounter()

        Console.WriteLine(AccessCounter.TotalAccess)
    End Sub
End Module

実行結果


3

インスタンスを3つ作っただけでTotalAccessの値が3になっていることから、Shared変数がクラス全体で共有されていることがわかります。

7. Sharedを使う際の注意点

7. Sharedを使う際の注意点
7. Sharedを使う際の注意点

Sharedは便利な反面、使い方には注意点もあります。複数の場所から値が変更される可能性があるため、意図しない動作が起きることがあります。特に初心者の方は、「Sharedは全体共有」という性質をしっかり理解したうえで使うことが大切です。

例えば、ある画面でSharedの値を変更したのに、別の画面でもその値が変わってしまうことがあります。これは初心者が混乱しやすいポイントなので、Sharedの役割を明確にして設計しましょう。

また、プログラムが大きくなればなるほど、Sharedを乱用すると管理が難しくなります。用途を決めて最小限に使うことが、VB.NETのクラス設計を上達させるポイントです。

関連記事:
カテゴリの一覧へ
新着記事
New1
ASP.NET
ASP.NET WebFormsのGridViewでデータ表示を完全マスター!初心者向けガイド
New2
VB.NET
VB.NETの例外処理とパフォーマンスの関係を初心者向けに完全解説
New3
ASP.NET
ASP.NET WebFormsでデータベースと連携!初心者でもできる保存と表示の基本
New4
VB.NET
VB.NETでStackTraceを利用してエラー箇所を特定する方法を完全解説!初心者向け例外処理入門
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETのEnum(列挙型)の使い方を完全解説!初心者にも分かる定義と活用方法
No.2
Java&Spring記事人気No2
VB.NET
VB.NETのIf文の使い方と条件分岐を完全ガイド!初心者でもわかる基本構文と実例
No.3
Java&Spring記事人気No3
VB.NET
VB.NETのBoolean型(True/False)の使い方と条件分岐での活用方法を徹底解説!初心者でも理解できる基本
No.4
Java&Spring記事人気No4
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.5
Java&Spring記事人気No5
VB.NET
VB.NETの例外処理を完全ガイド!初心者でもわかるSystem.Exceptionの仕組み
No.6
Java&Spring記事人気No6
VB.NET
VB.NETプログラムの実行方法まとめ!Visual Studio・コマンドラインの使い方
No.7
Java&Spring記事人気No7
VB.NET
VB.NETのコンストラクタと初期化処理の書き方を初心者向けに解説
No.8
Java&Spring記事人気No8
VB.NET
VB.NETでの変数名の付け方とは?わかりやすくエラーの起きにくい命名規則を紹介