【Excel-VBA】Call文の使い方!「定義」の使い方とCall表示がない記述方法

2020年2月27日

 

Excel-VBAで良く目にする「Call文」。しかし、実際Call文を目にしても、どんなものが書かれているのかわからない方も少なくありません。

ユーザー
ユーザー
Call文って、どうやって使うんだろう?

 

そこで、そんなCall文の悩みそして使い方を解決していこうと思います。

Call文とは・・・「Call文+サブルーチン」

Call文とは・・・

Call文:「Call + サブルーチン名」

のことを言います。

そもそもCall文とは、どいうものを指すのか画面からそのイメージを作っていきましょう。

下記画面をご覧ください。

 

Sub Mainというサブルーチンを実行したとしましょう。その処理を実行していくと、黄色い部分の「Call +Move_Call」というのに出会います。

しかし、これが何を指すのかというと、その下に記載されている、「Private Sub Move_Call()」というサブルーチンを作っており、ここに飛んでくださいね。ここを呼び出してください。という意味を示しています。

 

つまり、Call文というのは、その他のサブルーチンを呼び出すというものなのです。

 

サブルーチン化が必要な理由とは

それでは、どうしてこのサブルーチン化を行い、Call文として呼び出すようなことが必要になるのでしょうか?

仕組みを実装する時には、同じModule内に同一サブルーチン内にプログラムを記述すれば、それほど簡単なことはありません。

<サブルーチン化が必要な主な3つの理由>

  • 同じソースを何度も記述することは見栄えも良くない
  • メモリーを消費してしまう
  • 見やすくすることで見る人にもわかりやすい

 

同じプログラミングの記述は、必ず存在します。そんな時にサブルーチン化することで、同じソースを何度も記述することを防いだり、後からの引き継いだ方でも見やすいソースを心がけることが業務を円滑に進むためのポイントになります。

 

これは、日本語と同じです。

「私が、今から外に出てて御飯を食べに行きます。車で出かけて、・・・・・・・・・買い物をした後で、外にラーメンを食べに外出しにいきます。

 

管理者
管理者
同じ日本語が何度も並んだら、それさっきも聞いたよ~。ってなりますよね~。

 

だから、同じ内容はサブルーチン化してしまうんです。

 

ただどうしてそれがいけないのか?

というと、いけない分けではありません。見栄えが悪く、後からソースを追う人にも非常に大変になるためです。

そのため、サブルーチン化しておくことで、あとで同一プログラムを書く手間を省くこともできるので、しっかり頭で構造化しながら、プログラミングしていくことが非常に大切になります。

またこれを「構造化プログラミング」とも言うんです。

こんなことを考えながら、プログラミングができるといいですね。

 

Call文の定義の使い方

続いて、Call文の「定義」の使い方について覚えておきましょう。

ユーザー
ユーザー
そもそも「定義」って、なんでしょうか?

 

「定義」とは・・・・

Call文で呼び出したい時に、そのサブルーチンにジャンプする時に使用します。

 

定義の利用目的

定義は主に、別のサブルーチンに記載したところを瞬時に移動できるので、そのCall文をデバッグして、中身を確認する時に利用します。

 

定義の使い方

それでは、定義の使い方について解説していきましょう。

下記をご覧ください。

Module1に記載されるCall文】

【定義の使い方】

「Call文の上にカーソルセット」 ⇒ 「右クリック」⇒「定義」 ⇒ 「Call文のサブルーチンにジャンプ」

 

Call 文の上にカーソルを当て、右クリックをして下さい。「定義」を選択します。すると、そのCall文の定義にジャンプします。

 

■【Module2に記載されるMove_Callのサブルーチンに移動】

 

ジャンプする前まで、Module1にありましたが、定義でジャンプしたことで、そのMove_Callは、Module2に記述しているため、こちらのModule2に画面が転移されます。

 

このようにして、サブルーチン内を確認する時に、この定義を使用します。

 

Call文なのにCall記述がない場合

またCall文として、サブルーチンに移動できるのに、「文頭にCall記述がない」という記述もあります。

下記をご覧ください。

 

 

大きな赤枠の中にある赤枠も、Call文の記載はないですが、、実はこのTestMoveもCall文になります。

後ろの()で見分けが付けることができますが、この()がなくても、Call文になりますので、見分けるには経験が必要です。

これは、慣れてくれば、わかるようになるので、しっかりと経験を積むことが大切です。

 

まとめ

このように、Call文による「定義」は、データがきちんと変数にセットできているのか、デバッグにおいて容易にサブルーチン間を移動できるため便利機能でもあります。

使用の仕方をしっかり理解して、正しくデバッグができるようにしていきましょうね。

デバッグの正しいやり方についても記載してますので、ご確認下さいね。

 

⇒【Excel-VBA】バグ解析に最適!上手なデバッグの仕方とブレークポイントの使い方

 

【おすすめ:WordPressテーマ 「WING(AFFINGER5)」について
     ※ブログを始めるなら絶対おすすめ【特典あり】


私も新たなサイト【育チルnet」にて、検索エンジンの上位の多くを占めると言われるSEO対策に強いWordpressテーマを導入してみました。

無料テーマから有料テーマにしただけなのに、0円だった収益が2~3万円まで上がったんです!

正直驚きでした!実際に利用した所感は、デザイン性能がかなり整っていますし、表示速度もやっぱりかなり速いです。人気なWordpressテーマなだけはあると感じました。

無料のテーマでも私は悪いとは思っていませんが、やはり検索エンジンからの評価はだいぶ違いました。

初めて数ヶ月ですが、もうすでに検索エンジンから大きく表示されるようになっています。

どうせやるなら、しっかりgoogle社からの評価を受けられる整えられた環境でブログ運営する方が絶対にいいと感じたため、当サイトをご覧下さった皆様にもお伝えさせて頂きました!

Wordpressテーマを新たにご検討方は、今しかない期間限定の特典も付いていますので、お早めにご確認下さい。

レビュー

公式サイト



 ←ためになったら押してね^^