
いつもお世話になっております。
今更な話なのですが、
SubプロシージャなどをCallで呼び出す意味は何なのでしょうか?
例)
ユーザーフォーム:UserForm1
Public Sub CommandButton1_Click()
Call DATA_CREATE
End Sub
Sub DATA_CREATE()
Range("A1").value=1
Range("A2").value=5
End Sub
----------------------------
ためしに書いてみましたが(実際に実行していません
Subと書いてあるものはCallを使わなくても
上手く動作します。
Public Sub CommandButton1_Click()
DATA_CREATE
End Sub
上記方法でも大丈夫です。
何か意味などありましたら、教えてくださるとうれしいです!
よろしくお願い致します。
No.3ベストアンサー
- 回答日時:
こんにちは!
すでに回答は出ていますが、
経験上で・・・
複数Sheetを操作したい場合、シートモジュールでは別Sheetを操作できないコトがあります。
しかし、標準モジュールでは可能です。
Changeイベントなどはシートモジュールになりますので
シートモジュールで動かないコードを標準モジュールに記載しておけば
「Call」で呼び出し、別Sheetの操作も可能になることがあります。
そのような場合に「Call」を使ったりします。m(_ _)m
回答ありがとうございました!
シートモジュールを使う場合に良くCallを使うのですね!
うーん、奥が深いです・・・
回答ありがとうございました。
No.2
- 回答日時:
省略可なので、別に書かなくていいんですが、他の言語でも
「サブルーチン」を呼び出すときは「Call」を使うことが多いので、
後で見て分かりやすくするために、あえてつけている人も多い
と思いますよ。
サブルーチン名だけ書いていると、一瞬何をやってるのかわから
なくなりますから・・・。
回答ありがとうございました!
他の言語だと、Call必須だったりしますよね~
色んな言語が混ざって頭がパンクしそうです(笑
回答ありがとうございました。
No.1
- 回答日時:
>何か意味などありましたら
Callステートメントのヘルプをちょっと開いて見てみると
----------------
解説
プロシージャを呼び出すとき、キーワード Call は省略できます。(以下略)
----------------
と書いてある通り、callを省略してプロシジャ名だけ書いてもcallで実行されてるだけです。
「何か意味」という事で言えば、可読性や、社内などでマクロの書き方ルールを定めている場合にそれに準拠するといった意味があります。
回答ありがとうございました!
callが在っても無くてもあまり変わらないとのことですかね。
callが在ったほうが、このプロシージャに飛んでる!とパッと見て分かるので、これからも書いていこうと思います。
回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
CSVファイルの中で、「 , 」カンマを使いたい
その他(コンピューター・テクノロジー)
-
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
ExcelのVBAでGoToの代わりに…
Excel(エクセル)
-
-
4
メッセージボックスで1025文字以上を扱う
Visual Basic(VBA)
-
5
【VBA】ワークブックを開く時にエラーが出る場合と出ない場合の違いは?
Excel(エクセル)
-
6
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
7
excelのInitializeイベントとActivateイベントについて
Excel(エクセル)
-
8
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
9
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
10
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
11
ADOを使ったDBアクセス後のメモリ解放
その他(データベース)
-
12
ExcelのVBAでフォームが表示されない
Excel(エクセル)
-
13
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
14
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
15
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
16
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
17
Access VBAで行ラベルが定義されていないというエラーが出ます
Access(アクセス)
-
18
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
19
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
20
クラスモジュールを使わないとできないこと
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザー定義関数に#NAME?が返...
-
VBAで別モジュールへの変数の受...
-
Excel VBA 定義されたプロージ...
-
Excel VBAで、ユーザーフォーム...
-
VBのフォームモジュールと標準...
-
Access VBA標準モジュールにつ...
-
シャープ製品JH-WB1821 と BCG...
-
VBでグローバル変数を宣言するには
-
vba userFormのSubを標準モジュ...
-
大量の標準モジュールを解放す...
-
VBA This Workbookモジュール...
-
Excel VBAでリンク切れをチェッ...
-
モジュールとクラスの違いって...
-
モジュールとは何ですか
-
フォーム名一覧の取得
-
COBOL85からCOBOL2002移行
-
ユーザー定義関数をEXCELに常駐...
-
acwzlibとは?
-
エクセルVBA クラスモジュール...
-
エクセルVBA 時間のカウントダ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでリンク切れをチェッ...
-
エクセルVBAでシートモジュール...
-
VBでグローバル変数を宣言するには
-
ユーザー定義関数に#NAME?が返...
-
Excel VBAで、ユーザーフォーム...
-
Excel VBA 定義されたプロージ...
-
vba userFormのSubを標準モジュ...
-
標準モジュールを削除したい。(...
-
'Range'メソッドは失敗しました
-
VBAで別モジュールへの変数の受...
-
モジュールからフォームのボタ...
-
モジュールの最大数はいくつな...
-
グラフのX,Y座標を取得したい
-
モジュールとクラスの違いって...
-
【vba】フォームに書いてあ...
-
Form間の値の渡し方
-
VBのフォームモジュールと標準...
-
VBA モジュールで共通に使う変...
-
Excel VBA 『Call』で呼び出す...
-
acwzlibとは?
おすすめ情報