大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、「Sub」と「Public Sub」、「Private Sub」の違いを解説します。「Sub」と「Public Sub」は「他モジュール」から呼び出せます。「Private Sub」は、「同じモジュール」から呼び出すことができます。特別な事情がなければ、基本的に「Sub」を使っていきましょう。

はじめに

この記事では、「Sub」と「Public Sub」、「Private Sub」の違いについて、ご紹介します。

違いは、「他のモジュール」から呼び出せるかどうかです。

「他のモジュール」から呼び出したいときは、「Sub」もしくは「Public Sub」です。

「同じモジュール」の中だけで使いたいときは、「Private Sub」を使います。

「Sub」だけ記述すると「Public Sub」の意味になります。

特別な事情がなければ、コードが一番シンプルな「Sub」を使っていきましょう。

では、「Sub」と「Public Sub」、「Private Sub」の違いについて、解説していきます。

この記事で紹介すること

  • Sub、Public Sub、Private Subの違い

目次

「Sub」と「Public Sub」、「Private Sub」の違い

「Sub」と「Public Sub」、「Private Sub」の違いについてです。

  • 「Public Sub」:他モジュールから呼び出せる
  • 「Private Sub」:同じモジュールから呼び出せる
  • 「Sub」:Public Subと同じ

という感じになります。

では、一つずつみていきましょう。

「Public Sub」は別モジュールから呼び出せる

「Public Sub」は別モジュールから呼び出せます。

「Public」は他のモジュールから呼び出せる

スコープをPublicにすると他のモジュールから呼び出せます

他のモジュールから呼び出せます。

他のモジュールから呼び出せた

他のモジュールから呼び出せました

こんな感じで、「Public」をつけると、他のモジュールから呼び出せます。

「Private Sub」は同じモジュールから呼び出せる

「Private Sub」は同じモジュールからのみ呼び出すことができます。

なので、他のモジュールから呼び出すことはできないです。

「Private」は他のモジュールから呼び出せない

「Private」を付けると、「他のモジュール」から呼び出すことができないです。

スコープをPrivateにすると他のモジュールから呼び出すことができないです

他のモジュールから呼び出すとエラーとなります。

他のモジュールから呼び出すとエラーとなります
他のモジュールから呼び出すとエラーとなります

他のモジュールから呼び出すとエラーとなりました。

「Private」は同じモジュールから呼び出せる

Privateは同じモジュール内にある場合に呼び出せます。

Privateは同じモジュール内にある場合に呼び出せます

実行してみます。

同じモジュール内にあるPrivateを呼び出せました

同じモジュール内にあるPrivateを呼び出せました。

「Private Sub」は、同じモジュール内だけで呼び出せるようにしたい場合だけ、使うといいです。

「Sub」だけ記載すると「Public Sub」になる

「Sub」だけを記載すると「Public」の意味になります。

「Sub」だけ記載すると「Public」の意味となる

スコープを省略して「Sub」だけを記載すると「Public」の意味になります

他モジュールの「Sub」を呼び出してみます。

他モジュールの「Sub」を呼び出す

他のモジュールのSubを呼び出してみます。

他のモジュールのSubを呼び出してみます

「Public Sub」と同じで、「他のモジュール」のSubを呼び出せます。

他のモジュールのSubを呼び出せました

他のモジュールのSubを呼び出せました。

おわりに

この記事では、「Sub」と「Public Sub」、「Private Sub」の違いについて、ご紹介しました。

違いは、「他のモジュール」から呼び出せるかどうかです。

「他のモジュール」から呼び出したいときは、「Sub」もしくは「Public Sub」です。

「同じモジュール」の中だけで使いたいときは、「Private Sub」を使います。

「Sub」だけ記述すると「Public Sub」の意味になります。

なので、特別な事情がなければ、基本的に「Sub」を使っていきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す