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

このQ&Aのポイント
  • エクセル2003を使ってVBAを勉強している者ですが、エラーが多く困っています。
  • VBAでは「Sheet1」と「Module1」にコードを書くことがありますが、どちらに書くべきか迷っています。
  • マクロの記録をすると、「Module1」にすべてのコードが書き込まれます。どこに書くべきか教えてください。
回答を見る
  • ベストアンサー

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

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

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

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

普通のVBAプログラムはModule1、Module2、・・・などに書きます。これは、そのプログラムを「実行しろ」と命令しなければ実行しません。 Sheet1などに書かれるプログラムは、「Sheet1(コード)」を開いたとき、左上に表示されている「(General)」の右の黒下三角をclickして、「WorkSheet」を表示したとき、右側上の黒下三角をclickして表示されるプログラムなどを書くのです。これは、イベントプロシージャといって、Sheet1に何か入力したときとか、SHeet1を閉じたときとかに自動で実行されるプログラムです。これは、ThisWorkbookも同じです。 そのほかに、Class Moduleがありますが、これはもう少し勉強してからにしましょう。

pairakku
質問者

お礼

okormazdさん、回答どうもありがとうございます。 >普通のVBAプログラムはModule1、Module2、・・・などに書きます。 >これは、そのプログラムを「実行しろ」と命令しなければ >実行しません。 ん~自分の中で、わかったようなわからないような感じです。 「実行しろ」と命令とは、ただ単に「1」「2」「3」と数字を打ってマクロの記録をする事とは、 別の意味なのかな~?(´;ェ;`)ウゥ・・・ >Sheet1に何か入力したときとか、SHeet1を閉じたときとかに自動で実 >行されるプログラムです。 私の場合、Sheet1に「新しいマクロの記録」→「1」「2」「3」→「記録終了」と 入力したのですが、何回行ってもやはり「Module1」に書き込まれます。 やはり私のやり方に問題あるのですね?難しいな~ >そのほかに、Class Moduleがありますが、これはもう少し勉強してか >らにしましょう。 はい、もう少し勉強してからにします。 今の質問だけでも、パニックになってます。 okormazdさん、VBA初心者の勉強にいいお勧めサイトや 参考書類知っておられたら、教えて貰えませんか? 宜しくお願いします。

その他の回答 (1)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

「実行しろ」という命令と、ただ単にマクロの記録をする事とはまったく別の意味です。「実行しろ」というのが命令です。 あなたのやっていることは、単にマクロを記録しているだけです。 普通は自分でマクロプログラムを作るのですが、簡単にできるように、マクロ記録の機能があります。 「1」「2」「3」と数字を打ったのを消して、 ツール―マクロ で、Macro1とかMacro2を選んで、「実行」のボタンを押してください。 それが「実行」しろという命令です。 「私のやり方に問題」はないですよ。 それより、基本的なことがわかっていないようなので、ここではこれ以上の説明をするのはしんどいです。

pairakku
質問者

お礼

okormazdさん、お返事ありがとうございます。 マクロの記録と、実行しろの命令は、別なのですね もっと自分自身で、基本を勉強してみます。 いろいろ教えて頂いてありがとうございました。

関連するQ&A

  • エクセル VBAについて困っていることがあり質問をします。

    エクセル VBAについて困っていることがあり質問をします。 日本語Windows及び日本語エクセルで作成したマクロを英語オンリーのWindows及びエクセルで使用すると下記のエラーで停止してしまします。 Microsoft Visual Basic Compile error on hidden module: sheet1 どうしても仕事で日本語Windowsで作成したマクロを英語オンリーのWindowsで実行させないと行けません。どうか知っている方がいましたら教えて下さい。 情報: (1)シート1にもマクロ(コントロールボックス)から入れたマクロが入っています。 (2)マクロには、日本語の表記があります。

  • エクセルVBAで内容変更のたびに自動実行するには?

    エクセルVBAでBOOK1のsheet1とsheet2とsheet3とsheet4があり、 sheet1とsheet2とsheet3の全ての情報をsheet4にコピーしてまとめるようにしました。 マクロを実行するには、Visual Basicを開いてF5を押しています。 それをsheet1かsheet2かsheet3の中身の一部分でも変更すると そのときに自動的にマクロが実行されるようにしたいです。 エクセルを開いたときやsheetをアクティブにしたとき、日時を指定して実行させる という説明はみつけましたが、sheet内の変更で実行というものはみつかりませんでした。 どのようにすれば良いのでしょうか? よろしくお願いいたします。

  • VBAの画面が正しく表示されません

    当方エクセル2003を使用しています。ツール→マクロ→Visual Basic EditorからVBAを開いたんですが、以前は左側にSheet1,sheet2などがあり、右側に文字を打つ事が出来たんですが、現在は灰色の画面しか表示されなく、文字を打つ事が出来ないのですが、どうしたら元に戻るのでしょうか? よろしくお願いします。

  • EXCEL VBAでデータをどんどん入力したいのですが・・・

    こんにちは。 EXCEL VBA の初心者です。 下記のURLのようなVBAを作りたいのですがうまくいきません。 http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_080.html 3~4項目のフォームを作って登録ボタンでシートにどんどん 記録されていくマクロを作りたいのです。 上記のURLを参考に作っていますがうまくできません。 どなたか助けて下さい。 よろしくお願いいたします。

  • エクセル VBAについて

    現在エクセルのVBAを勉強したいと考えています。 VBAを使用するにはVisual Basicをインストールしないといけないのでしょうか?普通にエクセルをインストールしてさえいれば使用できるのでしょうか?

  • VBAについて教えて下さい。

    VBAの事について教えて下さい。 初心者です。本で読んだのですが、エクセルのツールから、 マクロ→Visual Basic Editorをクリックすると、 Microsoft Visual Basic‐Book1と言う画面で、 左側に VBA Project(Book1)と言う画面になるとなっていますが、 Microsoft Visual Basic‐Excel_JSV7.xlaと言う画面になり、 Excel_JSV7.xla‐JSV7Transk JSheet(コード)と他に2つが出てきます。 こんな時は、どうすれば直るのでしょうか?  どなたか作業の仕方を教えていただけないでしょうか。

  • 【EXCEL VBA】Visual Basic Editorについて

    お世話になります。 EXCELで「Visual Basic Editor」を開くと、 左側に下記が表示されます。 Microsoft Excel Objects > Sheet1、Sheet2、Sheet3、ThisWorkBook フォーム > UserForm1 標準モジュール > Module1 クラス モジュール > Class1 Sheet1やUserForm1、Module1、Class1にそれぞれコードを 入力できますが、違い、使い分けについて教えてほしいです。 どれにコードを書いていけばいいか分からず困っています。 よろしくお願いします。

  • Excel VBAエラー”マクロシートに対する・・

    Excel VBAを勉強している者です。VBAプログラムで Sub Iro1() ・・・ End Sub Sub Iro2() ・・・ End Sub という処理のプログラムを作成しエクセルシートにボタンを作りマクロ登録をしようとすると ”マクロシートに対する参照を指定ください”とエラーが出ます。 すみませんが、解決方法を教えてください。

  • excel VBA モジュール削除(複数ファイル)

    こんにちは。 VBA初心者です。 excelでマクロを組みました。 保存先は「module1」に保存されています。 excelは「様式」ファイルにマクロを組み込んでおり、そのファイルを使用してシートに記入、別名で保存して使用しています。 最終的に200近くのファイルが出来るのですが、それら全てのmoduleを削除するのが手間なのです。  ・修正する可能性があるので、最初に保存した時点ではマクロを消したくない。  ・つまり、データが仕上がった時点でマクロを削除したい。 一括で削除できる方法は無いでしょうか?  ・マクロ削除時に不要なシートも削除しています。 方法等ございますでしょうか? この方法について検索を掛けましたが、検索の仕方が悪いのか良い方法が見つかりませんでした。 他に既に回答が在りましたら、そちらも参考にしたいのでアドレス等も教えて頂けると助かります。 よろしくお願いします。

  • VBAで別のExcelブックのボタンのマクロ登録

    Excelブック1とExcelブック2があります。 Excelブック1はVBAで 1)Excelブック2を開いて 2)Excelブック1のワークシート(Sheet1)と  モジュールシート(Module1)を  Excelブック2にコピーします。 3)ワークシート(Sheet1)にはコントロール(ボタン)が貼り付けてあって  このボタンをクリックするとモジュールシート(Module1)の中の  Excute_Button()というプロシージャ(マクロ)を呼び出すため  Excelブック1のVBAで  wb.Worksheets("Sheet1").Shapes.Range(Array("Button 1")).Select  Selection.OnAction = "Excute_Button"  と記述してボタンのマクロの登録をします。   (wbはExcelブック2を指しています) 4)Excelブック2を保存して閉じる。 という処理をしています。 この後、Excelブック1を閉じて、 Excelブック2を開いてワークシート(Sheet1)のボタンをクリックすると Excelブック1が開いてしまいます。 Excelブック2のボタンのマクロの登録のマクロ名を見てみると Excelブック1のファイル名!Excute_Button となっています。 Excelブック1のVBAで、ここを単にExcute_Buttonだけにするには どのようにすればよいでしょうか。