• ベストアンサー

EXCEL VBAのModuleの使い方

EXCEL VBAの初心者です。 VBAでプログラムを記述する時に、Module1、Module2とかの 使い分けに何かルールはあるのでしょうか。 たとえばできるだけModule1にまとめて記述した方がいいとか、 機能や種類別にいくつかに分けた方がいいとか。 あなたの使い方でも構いません。教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • cmc32000
  • ベストアンサー率41% (103/251)
回答No.1

使い分けにルールはないと思います。機能ごとに分けておくと整理しやすいかもしれません。 オートマクロを使うと、モジュールシートが次々と追加されていくので、私の場合は、後で一つにまとめています。

murano47
質問者

お礼

どうもありがとうございます。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 標準モジュール(General Module)の使い分けは、上級レベルでなければ気にすることはありません。原則的には何もルールはありませんが、厳密には多少のルールは存在しています。私は、どこで読んだかは、あまりはっきり覚えがありませんが、たぶん、Developer の参考書に書かれていたと思います。 まず、種類分けは、そのコードの機能や目的によって分けます。 共有関数や共有モジュール専用や、API関数など、専用にします。 私個人は、その後に、別途、Initiation(開始)Module として、そのワークブック開始に設定させるべきものなどを、そこに書き込んでいきます。つまり、グローバル設定のものを入れてしまいます。 それと同時に、編集のしやすさから、グループ単位に分け、また、変数のModuleレベル・スコープ(つまり、Private)を考慮した書き方をします。変数をProject レベル(つまり、Public)に全部してしまうというのは、あまり良くありません。 最後に、Module やProject という既存のオブジェクト名は、練習用でなければ、なるべく一意のものにしていきます。ローカルモジュール(つまり、シートやThisWorkbook)は、コマンドボタンなどのOLEObjectのコントロールや、ワークシートイベント以外は、書かないようにします。 それは、やっていければ、使いやすさのために、自然に身についていくものですから、あまり気にする必要はありません。

murano47
質問者

お礼

どうもありがとうございます。

関連するQ&A

  • エクセルを閉じる時のVBAのプログラム

    エクセルを閉じる時に実行するVBAのプログラムを記述する時は、 どのように記述すれば良いのでしょうか?

  • エクセルのマクロとVBAについて

    まだあまり多用していないのですが、エクセルでは使っていくアイコンを指定することで(それを利用することで)、マクロを組みそれがエクセルのVBAで記述されるということですが、その逆エクセルのVBAで記述したプログラムを動作に対応したアイコン等の流れで示すことは出来るのでしょうか?もしあったらどのような方法でしょう?

  • エクセルVBA 開始セルに戻る方法

    エクセル2003にて VBA記述の方法で、”実行時に選択されていたシートのセルに戻る”というのはどう記述すればよいのでしょうか??? 現在使用しているVBAは人から教えてもらったもので”アクティブシートから他のシートの情報を検索し、コピーする”というものですが追加で”元のシートに返って情報を貼り付ける”という機能を追加したいです。 わかるかた教えてください。(初心者ですみません)

  • VBAの記述位置で起動時間は変りますか?

    従業員データ管理のXLSを作成しています。 このサイトにはお世話になっています。 皆が使い易いようにVBAを更新していく内に Excelの起動(マクロを有効にする以下の動作)に 時間がかかる様になってしまいました。 (多分UserFormを読込んでいるのかな・と思うのですが) 現状 UserForm1から5に多く記述しています。 UserForm上のTextBoxを貼り付けるマクロが多いので。 標準Module内に記述するべきでしょうか? ただ、Moduleに記述するとUserFormを指定しないと エラーになります。複数ブックを立ち上げている為。 Moduleに記述し直すには、時間が掛かります。 UserFormにかなり多く記述してますので。 でも、もし、Module内に記述した方が良いと解るなら、 時間をかけてもプログラムし直します。 ご存知の方いらしましたら、お願い致します。

  • excel vba

    vbaプロジェクトで module1,2とフォルダがあって その中でmodule1のmacro_AAからmodule2のmacro_BB をcallできますか。 またコールした場合macro_BB は、macro_AAの変数を利用するには、どのような記述がいりますか。 (1)単に読むだけ (2)macro_AAの変数を書き換える 各場合について教えてください。

  • エクセル VBA 

    エクセル VBA  Sheet上にコマンドボタンをクリックさせたら 電卓表示させるにはどのように記述をしたら良いですか? (1)勿論、VBAで電卓作成したいのですが…何か良いサイトはありますか?それか  作り方を教えて欲しいです。 (2)ツール⇒すべてのプログラム⇒アクセサリ⇒電卓  で表示できますよね!それをコマンドボタンクリックで  表示させるには、どのように記述したら良いですか?   すいません教えてください!

  • エクセルVBAで2つのマクロを同時に動かす

    エクセルVBAで2つのマクロを同時に動かすことはできるでしょうか。できる場合注意点はあるでしょうか。たとえばクエリで5分毎にWebページをダウンロードするプログラムを動かしいる時、別のエクセルVBAプログラムを動かすと、たまたま5分毎のクエリ取得時間に当たると、別エクセルの方にWebページが書かれてしまう場合があります。これを防ぐ方法はあるでしょうか。

  • VBAについて教えて頂けませんか?

    昨日から、エクセル2003を使ってVBAを、勉強している者です。 ネット上で調べながら、取合えず簡単なVBAを入れる事が出来ました、ですがエラーばかりで、どうしても先に行けず困っています。 ネット上で参考になる、VBAなどを見て思ったのですが エクセルのVisual Basicを開くと、左側に「Sheet1」とか「Module1」等があります。 参考になるVBAでは、「Sheet1」に書かれているのがあれば、「Module1」に書かれているのもあります。 VBAは「Sheet1」に、書き込まれるべきなのでしょうか?それとも 「Module1」に、書き込まれるべきなのでしょうか? 私の場合、例えば「1」「2」「3」と数字を打ってマクロの記録をして、Visual Basicを開くと、すべて「Module1」に書き込まれます。 すみませんが、教えて頂けませんか?

  • Excel VBA こんな事ってできますか?

    VBA初心者あるいは、興味はあるけどさっぱり解らない人への教本(?)を作成したいです。 社内でVBAをかじっているのは私だけですが、こんな声を聞きます。 「出来るならしてみたいけど・・市販の教本を買っても解んない」 「英語は解るけどプログラムはした事ない」「教えて下さい」 私に解る事なら教えてあげたいけど、なんにも解んない人もいれば、 「解るけど全ては解らない、解らないけど、解るかも・・等々。」 そんな人達への教本をExcelで作れないかなと思った次第です。 '---------------------------------------------------------- Sheet1 ABCDEFGHIJKLMNOP 1 問題:任意の写真を任意のセルに貼り付ける。(下記テキストボックス内に記述して[解答]ボタンを押して下さい。) 2 3「テキストボックス----------------------」 4[解答]←CommandButton1_Click() '''ここでユーザーが書いたテキストボックス内の記述をVBAのCommandButton2_Click()モジュールに貼る----可能? 5[テストします]←CommandButton2_Click() '''ここでユーザーが記述したプログラムをロードする----可能? 6 7 '---------------------------------------------------------- 上記のような事は可能でしょうか?

  • エクセル VBA ' " ! & の使い方

    エクセル VBA ' " ! & の使い方 VBAを独学で勉強している、超初心者です。 同じシート内でのVBAを作るのはなんとなくできるようになったのですが、別のシートのデータを参照したいときなど、(シート名を変数にしています)うまく動作できません。 ' " ! & の使い方をやさしく解説してください。 よろしくお願いします。

専門家に質問してみよう