スポンサーリンク

【初心者向け】Excel VBA(マクロ) 他のプロシージャを呼び出す Call ステートメントの使い方

The following two tabs change content below.

松井 元(まつい はじめ)

静岡県三島市の松井会計事務所に勤務する理系税理士。 文理両方のスキルの融合を考えており、このブログは以下を中心に更新している。
●税金・会計に関すること
●IT(Excel、VBAなど)を使った業務効率化
●自分のこと(考え、私生活)

さらに詳細なプロフィールはこちら
松井会計事務所へのお仕事ご依頼・お問い合わせはこちら
税金・会計の無料メルマガはじめます

Excel  VBA(マクロ)を使うと、コードを分割したくなることがあります。

特に様々な Excel ツールで共通して使うような部分があると、そこだけは分けておきたいと感じます。

さて、そのようなときに Call ステートメントを使うと便利です。

今日は Call ステートメントの使い方についてお話しします。

Callステートメント

スポンサーリンク

1、Call ステートメントの使い方

Call ステートメントの使い方

Call ステートメントはプロシージャを呼び出すのに使います。

以下のように記述します。

Call プロシージャ名

プロシージャとは VBA コードのかたまりで、1 つのプロシージャで1 つの役割を持っているイメージです。

プロシージャには、Sub プロシージャと Function プロシージャの2種類があります。

Sub プロシージャ
・・・Sub 〜 End Sub で囲まれる範囲

Function プロシージャ
・・・Function 〜 End Function で囲まれる範囲

Call ステートメントを使った一例 ①

Call ステートメントでSub プロシージャを呼び出すを呼び出す簡単な例を取り上げます。

1つのモジュールの中に Test1、Test2 の2つのプロシージャを作ります。

Test1 プロシージャを実行すると 2つのメッセージボックスが続けて出てきます。

Image

Image(2)

最初に Test1 プロシージャの中で「おはようございます。」と表示させてから、Test2 プロシージャを呼び出しています。

Test2 プロシージャには「こんにちは。」というメッセージを表示させるだけの役割を持たせてあります。

Call ステートメントを使った一例 ②

さて、もう1つ例を示しておきますね。

次の Excel シートに入力された売上高と売上原価から原価率と利益率を計算して表示して、CSV ファイルに書き出すコードを取り上げます。

セミナー開催致します。
◆4/22 30代半ばから税理士になった体験談セミナー

お仕事のご依頼は、以下のリンク先にある個別のフォームよりお願い致します。
◆税務・会計 顧問
◆税務・会計のスポットコンサルティング
◆Excel シートのオーダーメイド
◆Excel、マクロ(Excel VBA) のマンツーマンレッスン
◆東亜大学通信制大学院(法学専攻) 入試対策コンサル
◆その他のスポットコンサルティング(当ブログを読み何かご相談したい事項が出てきた方に向けたサービス)

税金・会計についての無料メルマガをはじめます。配信をご希望させる方は以下のリンク先にあるフォームよりお願い致します
◆メルマガ登録

Image(3)

以下のようなコードを作ります。

Calc プロシージャを実行すると、原価率、利益率の計算が行われて同じフォルダの中にある CSVファイルに書き込まれます。

原価率、利益率の計算↓

Image(4)

CSVファイルへの書き込み ↓

Image(5)

Calc プロシージャの中で Call ステートメントを使って「Transform_to_Csv」という名前の Sub プロシージャを呼び出して、シートの内容を「出力ファイル.csv」に書き出しています。

Transform_to_Csv プロシージャは同じフォルダ内の CSVファイル(出力ファイル.csv)を開いて書き出す役割を持っています。

CSV ファイルに書き出す操作は独立しているので、そこだけは別のプロシージャにしておくと分かりやすいのです。

2、共通化したい部分を保存しておくと便利

いくつもの Excel シート内部の VBA コードで出てくる部分を共通化しておくのも良いと思います。

例えば、先の例では Transform_to_Csv プロシージャは calc プロシージャの中で呼び出しています。

私は、この Transform_to_Csv プロシージャを、様々な Excel シート内部の VBA コードで使うこので、Evernote に保存してあります。

Image(6)

そうすれば、使いたくなったときに Transform_to_Csv プロシージャをまるまるコピペできますので。

3、まとめ

Call ステートメントを使うことで、プロシージャを呼び出せます。

様々な VBA コードで共通して使いたい部分は Evernote やメモ帳に保存して起き、必要なときには独立したプロシージャとしてコピペして、Call ステートメントで呼び出すと良いでしょう。

編集後記

昨日(2/28)は確定申告業務から一時的に抜け出し、商工会議所青年部の関係で市役所へ。

色々と有意義な話が聞けました。

そして、商工会関係のことでも色々勉強しといた方がいいかもなぁ! って感じたこともありました。

セミナー開催致します。
◆4/22 30代半ばから税理士になった体験談セミナー

お仕事のご依頼は、以下のリンク先にある個別のフォームよりお願い致します。
◆税務・会計 顧問
◆税務・会計のスポットコンサルティング
◆Excel シートのオーダーメイド
◆Excel、マクロ(Excel VBA) のマンツーマンレッスン
◆東亜大学通信制大学院(法学専攻) 入試対策コンサル
◆その他のスポットコンサルティング(当ブログを読み何かご相談したい事項が出てきた方に向けたサービス)

税金・会計についての無料メルマガをはじめます。配信をご希望させる方は以下のリンク先にあるフォームよりお願い致します
◆メルマガ登録