大体でIT
大体でIT
Excel VBAで、Subから別のSubを呼び出すには、「Call」を使います。「Sub」と「Public Sub」は別モジュールから、「Private Sub」は同一モジュールから呼び出せます。シートや、ブック、フォームモジュールのSubを呼び出すには、「オブジェクト名」を付けて呼び出しましょう。
この記事では、Subから別のSubを呼び出す方法について、ご紹介しました。
実際は「Call」を使わなくても呼び出せますけど、わかりづらくなってしまうので、「Call」はつけた方がいいです。
「Sub」と「Public Sub」は別モジュールから、「Private Sub」は同一モジュールからのみ呼び出せます。
- 「Sub」と「Public Sub」:別モジュールから呼び出せる
- 「Private Sub」:同一モジュールからのみ呼び出せる
「Public」を省略したら「Sub」となるので、「Public Sub」は使わず「Sub」を使いましょう。
標準モジュール以外の「シート」や「ブック」、「フォーム」モジュールを呼び出すときは「オブジェクト名」を付けて呼び出す必要があります。
共有したいコードがあれば、「標準モジュール」に記載すると便利です。
Subから「別のSub」を呼び出すには「Call」を使います。
「Call」を使って別のSubを呼び出すことができます。
「Call」を使って呼び出し
別のSubを呼びだせた
「Call」を使って別のSubを呼び出すことができました。
Callを使わなくても呼び出せるけど付けた方がいい
ただ、わかりづらくなってしまうので、「Call」はつけた方がいいです。
「Call」はつけないで、別のSubを呼び出してみます。
「Call」をつけないで呼び出し
「Call」をつけないで別のSubを呼び出す場合です。
「Call」をつけないで、別のSubを呼び出すことができました。
コードが多くなってくると、「Call」を付けない場合わかりづらくなってしまいます。
「Call」はつけた方がわかりやすい
「Call」を付けないと、呼び出しているのがわかりづらいですよね。
「Call」をつけると別のSubを呼び出しているのがわかりやすいです。
別のSubを呼び出す際は、「Call」を付けて呼び出しましょう。
SubとPublic Sub、Private Subの呼び出し
「Sub」と「Public Sub」、「PrivateSub」の呼び出しをしてみます。
- 「Sub」と「Public Sub」:別モジュールから呼び出しできる
- 「Private Sub」:同一モジュールからのみ呼び出しできる
「Public」を省略すると「Sub」の意味となるので、「Public Sub」と「Sub」は同じものになります。
「Sub」は別モジュールから呼び出すことができます。
「Sub」を別モジュールから呼び出し
別モジュールから呼び出せた
「Sub」を別モジュールから呼び出すことができました。
Private Subは同一モジュールからのみ呼び出し
PrivateSubは同一モジュールからのみ呼び出しになります。
「Private」は別モジュールから呼び出せない
「Private Sub」は別モジュールから呼び出すことができないです。
「Private Sub」は別モジュールから呼び出すことができないのでエラーとなります。
「Private Sub」は別モジュールから呼び出すことができないのでエラーとなりました。
「Private」は同じモジュールからのみ呼び出し
「Private Sub」は同じモジュール内で呼び出すことができます。
同じモジュール内の「Private Sub」を呼び出すことができました。
「シート」、「ブック」、「フォーム」モジュールのSubを呼び出してみます。
標準モジュール以外のモジュールのSubを呼び出すには、「オブジェクト名」をつける必要があります。
「オブジェクト名」を付けて「シートモジュール」を呼び出し
オブジェクト名をつけて「シートモジュール」のコードを呼び出してみます。
「シートモジュール」のコードを呼び出すことができます。
シートモジュールのコードを呼び出すことができました。
「オブジェクト名」を付けて「ブックモジュール」を呼び出し
オブジェクト名をつけて「ブックモジュール」のコードを呼び出してみます。
「ブックモジュールの」コードを呼び出すことができます。
「ブックモジュール」のコードを呼び出すことができました。
「オブジェクト名」を付けて「フォームモジュール」を呼び出し
オブジェクト名をつけて「フォームモジュール」のコードを呼び出してみます。
「フォームモジュール」のコードを呼び出すことができます。
「フォームモジュール」のコードを呼び出すことができました。
共有したいコードは標準モジュールに記載すると便利です。
例えば、フォームモジュールのSubを呼び出すコードがあったとして、「オブジェクト名」を変更してしまうと、エラーとなってしまいます。
「フォームモジュール」の「オブジェクト名」を変更
フォームモジュールのオブジェクト名を変更して、実行してみます。
オブジェクト名が変わったので、エラーとなりました。
「標準モジュール」の「オブジェクト名」を変更
標準モジュールのコードを呼び出すときは、オブジェクト名を使わないで呼び出せます。
標準モジュールのオブジェクト名を変更しても、問題なく実行できます。
標準モジュールのオブジェクト名を変更しても、問題なく実行できました。
共有コードは「標準モジュール」に記載
共有したいコードがある場合は、標準モジュールに記載すると便利です。
共有したいコードを標準モジュールに記載して、実行できます。
共有したいコードを標準モジュールに記載して、実行できました。
こんな感じで、別モジュールから呼び出したいものがあれば、「標準モジュール」に記載した方が便利です。
この記事では、Subから別のSubを呼び出す方法について、ご紹介しました。
実際は「Call」を使わなくても呼び出せますけど、わかりづらくなってしまうので、「Call」はつけた方がいいです。
「Sub」と「Public Sub」は別モジュールから、「Private Sub」は同一モジュールからのみ呼び出せます。
- 「Sub」と「Public Sub」:別モジュールから呼び出せる
- 「Private Sub」:同一モジュールからのみ呼び出せる
「Public」を省略したら「Sub」となるので、「Public Sub」は使わず「Sub」を使いましょう。
標準モジュール以外の「シート」や「ブック」、「フォーム」モジュールを呼び出すときは「オブジェクト名」を付けて呼び出す必要があります。
共有したいコードがあれば、「標準モジュール」に記載すると便利です。
参考になればと思います。最後までご覧くださいまして、ありがとうございました。