• 締切済み

コードを書く場所で一般的なのは、ボタン内or一般モジュール内のSubそ

tyosuの回答

  • tyosu
  • ベストアンサー率100% (2/2)
回答No.1

あくまで参考までに。 Q1 . 人によってまちまちだと思いますが、私は基本的に 標準モジュール内に処理を書いて、ボタンには戻り値があるなしにかかわらず、メソッドの呼び出しと最小限の処理(値の変更)などで済ませています。 そのほうが後からプログラムの改造をするときに追いやすいからです。 VBAについてはよくわかりません。ごめんなさい。 標準モジュールはある程度部類(宣言・表示など)に分けておくと解析・改造が安易なコードになるとおもいます。 あくまで解析・改造が安易なプログラミングを目指しているので、処理は必ずしも速いとは限りません。。。。

関連するQ&A

  • 【VBA】SUBプロシージャーは標準モジュール以外に書いてもいい?

    ThisWorkbookのコードを書く場所や Sheetのイベントプロシージャーが実行されるところに Sub test() MsgBox "あああ" End Sub と書いて実行するとメッセージボックスが表示されます。 クラスモジュールとフォームのイベントプロシージャーを書くところではできませんでした。 ということはSUBプロシージャーは 標準モジュールでなくてもいいのでしょうか?

  • subプロシージャーは標準モジュールではなくフォームのコードを書く部分

    subプロシージャーは標準モジュールではなくフォームのコードを書く部分に書いても問題ないのでしょうか? エクセルにVBAでフォームを挿入し、 「Private Sub UserForm_Initialize()」 などのフォームのモジュールに、 Sub test() MsgBox "あああ" End Sub という標準モジュールに書くべきのsubプロシージャーを書いてもなにもエラーにならないし正常に動きます。 subプロシージャーは標準モジュールではなくフォームのコードを書く部分に書いても問題ないのでしょうか? それともエラーにならなくても標準モジュールに書いた方がいいですか?

  • EXECEL VBA コマンドボタンからのモジュール呼び出し 

    お世話になります. Excelのワークシート上にコマンドボタンを表示させ, そのコマンドボタンを押下することで, 作成したモジュールを実行させたく思っています. 下記記述のUserFormの****の部分に, 作成した標準モジュールを呼び出す記述が必要と考えておりますが, 上手くいきません. ちなみに標準モジュールは完成済みです. Private Sub CommandButton1_Click() ***************** End Sub 有識者の方,ご存知の方がいらっしゃいましたらご教授願います.

  • エクセルからアクセスのプロシージャーを実行させるには?

    エクセルの標準モジュールには→エクセル側のプロシージャー アクセスの標準モジュールには→アクセス側のプロシージャー と言う名前のプロシージャーが作成されています。 これをどちらもエクセル側で実行させることは出来ないでしょうか? 「アクセス側のプロシージャー」ではアクセス側の処理が実行されます。 でもできればエクセル側のコマンドボタンを一回押すだけで エクセルとアクセスの両方の処理を実行させたいです。 エクセルの標準モジュールには Sub エクセル側のプロシージャー() Call アクセス側のプロシージャー End Sub これを実行すると コンパイルエラーになります。 どうすれば一度で二つのアプリケーションのプロシージャーを実行させることが可能でしょうか? よろしくお願い致します。

  • マクロ subプロシージャーは指定できない?

    accessのマクロの アクション:プロシージャの実行 は、 subプロシージャーは指定できないのでしょうか? 標準モジュールに Sub test1() MsgBox "プロシージャーの実行のテストです" End Sub Function test2() MsgBox "プロシージャーの実行のテストです" End Function と作り、 マクロのプロシージャの実行で プロシージャ名をtest2()にすると、うまく表示されますが、 test1()だと、失敗します。 subプロシージャーをマクロで呼び出す方法を教えてください。

  • アクセスのVBです。イミディエイト ウィンドウで実行するには

    イミディエイト ウィンドウでsubファンクション関数 を実行できません つまり、 Private Sub aa() .... End Sub とあるものを、aa, と入力して実行できません エクセルのコマンドボタンから実行される場合は カレントモジュール内なので、許可されるが、 イミディエイト ウィンドウから実行すると、 そのモジュールの外からの実行とみなされるんで しょうか? そこで、標準関数 Function aa() .... End Function と標準関数につくり直して実行すると出来ます 質問点は こうしていちいちコピーしてつくりなおさなくても 実行できる方法がないのか、お聞きしたいのですが

  • コマンドボタンからSubをCallできない

    コマンドボタンのコードにcall マクロA と書いたのですが機能しません。 「開発⇒マクロ」でマクロを実行出来ないように(コマンドボタンのクリックまたはVBEのみからしか動かせないように)、マクロAはModule1にPrivate Subで書いてあります。 コマンドボタンからPrivate Subは呼び出せないのでしょうか? もしくは、マクロのリスト一覧に載せない方法、 または、コマンドボタンのクリックのみからしかマクロを起動できないようにする方法はないのでしょうか? よろしくお願いします。

  • ユーザーフォームから

    お世話になります。 ユーザーフォームにて、 オプションボタンでどれかを選択出来るようにし、 コマンドボタンで決定する様にしてあります。 選択した内容によりcallで別の標準モジュールに あるsubプロシージャに飛ばしたいのですが、 その記述方法が分かりません。 良くByvalの記述方法は見つかるのですが、 単純にsubプロシージャを実行したいだけなのです。 フォームの中に記述しても良いのですが、結構長くなって しまうので・・。 こういうやり方はおかしいのでしょうか。

  • Excel VBA プロシージャの種類の使い分け

    VBAを勉強中です。 最初に読んだ参考書には、 プロシージャにはsubとfunctionの2種類があると書かれていたので 鵜呑みにしていたのですが、 また違う切り口から、privateとpublicが存在していることを わかり始めて来たところです。 シートにコマンドボタンなどをつけてコードを登録しようとすると 自動的にprivate subになるので、 ひとつのシートにくっついているものはprivate subで あまり他シートから使う必要がないんだなぁという認識なのですが、 まずこれが合っているのか不安なのと、 あと、たとえばまったく同じコマンドボタンを 2枚以上のシートにつける時、 各シートに同じVBAをひとつずつ記述するより、 標準モジュールにprivate subを記述したほうが良いのか、という事が 気になっています。 好き好きなのかも知れませんが、私がつくったものに 他の人が変更を加える可能性があり、できる限り見やすくしたいので、 一般的にはどうされているものなのかお教えくだされば幸いです。

  • 標準モジュールで 『Sub test(ByVal Target As Range)』は動かない?

    選択されている複数のアドレスが知りたいので 標準モジュールに Sub test(ByVal Target As Range) Debug.Print Target.Address End Sub と書きました。 しかしF5ボタンを押しても何も起こりません。 デバッグ→コンパイルをしてもエラーになりません。 シートのイベントプロシージャーではなく 標準モジュールにした理由は イベント発生時ではなく、任意で起動させたいためです。 ためしに、 Sub test(ByVal Target As Range) Debug.Print Target.Address End Sub の下に、 Sub test2() Call test End Sub と書いたら、 「引数は省略できません。」 というエラーになりました。 何がダメなのかわかりません。 ご教授よろしくお願い致します。