- 締切済み
マクロを効率よく作成するには
会計事務所で、エクセルのマクロの作成をよく行います。 ですが、新しいマクロを作成する時に、すべてタイピングしてコードを書いているのが、もっと効率良くするほうほうがある様な気がしています。 ネットで検索すると、クラスモジュールの利用が良いらしいのですが、少し使ってみても、今一つ理解ができません。 標準モジュールで子プロシージャを使っても同じ事だと感じてしまいます。 そこで、クラスモジュールで効率が上がるポイントと、クラスモジュールでなくても、何かマクロ作成の効率を上げる方法を、ご教授頂ければと思います。 宜しくお願い致します。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- WindFaller
- ベストアンサー率57% (465/803)
- WindFaller
- ベストアンサー率57% (465/803)
- WindFaller
- ベストアンサー率57% (465/803)
- High_Score
- ベストアンサー率25% (45/176)
- High_Score
- ベストアンサー率25% (45/176)
- lupin-333333
- ベストアンサー率31% (294/933)
関連するQ&A
- エクセルのマクロについて
エクセルにてシート名タブ右クリック→「コードの表示」で開く画面に打つマクロはどういう意味(役割・機能)があるのですか? 通常、マクロ作成時の「挿入」→「標準モジュール」で開く画面に打ち込むマクロと何が違うのですか?
- ベストアンサー
- オフィス系ソフト
- マクロからマクロを作成
こんばんは。 あるエクセルファイル(A)の標準モジュールにVBAを書きます。 例えば、 workbook.add とかでワークブックを作成し、新しく作ったこのエクセルファイル(B)に(A)に登録されている標準モジュールを移植することは可能でしょうか? 可能でしたら、やり方をご教示くらはい!お願いしますmm -- エクセル2003です。
- ベストアンサー
- Visual Basic
- エクセルマクロの記録で記録した、ショートカットキーで起動するプロシージャの移動方法
エクセル2002で、マクロの記録で記録した、ショートカットキーで起動するプロシージャを作成しました。このプロシージャは、作成するたびに新たなモジュールを自動で造りその中に記録されます。 このように作成したプロシージャを一つのモジュールにまとめたいのですが、切り取り~貼り付けを行って移動すると、起動しなくなります。 マクロの記録で記録した、ショートカットキーで起動するプロシージャのモジュール間での移動方法をお教え下さい。若しくは、指定するモジュールに上記プロシージャを記録する方法をお教え下さい。
- ベストアンサー
- その他MS Office製品
- Excel2002・マクロ ツールバー、メニューバーの追加・変更方法
Excel2002において、自分で作成したマクロを実行させるツールバー、メニューバーを追加したいのですが、 どのようにすれば、追加や変更ができるのでしょうか? Excel Ver7.0の時に作成したマクロをExcel 2002で読み込んだのですが、ツールバー・メニューバーはちゃんと表示されているのに、VisualBasic Editorを開いてみると標準モジュール、クラスモジュールのどこにも、このコード記述が見あたりません。 Ver7.0の時は、ツールバー、メニューバーを表示させるコードを直接モジュールシートに記述しており、参照できるようになっていました。 Excel 2002では、コード記述ではなく、どこか別の所、プロパティウィンドウなどで設定するのですか? どうすれば、ツールバー・メニューバーの追加や変更が可能になるのでしょうか? どなたか、ご回答をよろしくお願いします。 5年のブランクがあり、新しいバージョンの仕様が 変わっているので、戸惑っています。 どなたか助けてください! よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBAで作成したComboboxにVBAでマクロを割り当てたい。
下記コードでcomboboxをつくったのですが 作成されたCombobox1のComboBox1_Changeエベントに 標準モジュール内のSub cal をVBAで割り当てたいのですが可能でしょうか。 コンボボックス作成マクロ x=0 y=0 With Worksheets("Sheet1").OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, DisplayAsIcon:=False) .Left = X .Top = Y .Width = 53.25 .HEIGHT = 18 .ListFillRange = "AAA" End With これで作成したコンボボックスに標準モジュール内マクロをVBAで割りあてしたい。 標準モジュール sub cal ・ ・ end sub
- ベストアンサー
- Visual Basic
- ACCESSのマクロに関しまして
お願いします。 ACCESS97で追加クエリを作成し、その後自動起動にしようと思い、マクロで追加クエリを項目に入れマクロを作りました。 マクロを作成する際に、モジュールでレコード追加するテーブルを一度削除しようと思い、「DELETE文」でモジュールを作成し、マクロの追加クエリの前に「プロシージャの実行」でモジュールのプロシージャを実行するようマクロに記述しました。 <マクロ内容> (1)「プロシージャの実行」 (追加クエリで追加するテーブルの中身をDELする) (2)「クエリを開く」 (追加クエリでレコード追加) この用に記述し、マクロ名を「AutoExec」で記述して、ファイルを実行してもマクロが起動しません。 (1)の「プロシージャの実行」までは、実行されているようなのですが(テーブル内確認)、以降の追加クエリが実行されません。 何か他の設定があるのでしょうか? お願い致します。
- ベストアンサー
- オフィス系ソフト
- [VBA] マクロファイルの管理について
こちらの識者の方々にはいつもお世話になっております。 VBAの質問で、環境は下記になります。 OS=windows7 pro 64bit Office=Excel2010(14.0.7128.5000) 業務でたくさんのマクロを作成(仮にA-Zとします)し、複数人が使用しているのですが、作成しすぎて管理が大変になってきました。 そこで、1つのxlamファイル(仮にmasterファイルとします)に全ての実行コードを書き、A-Zのファイルからはmasterファイルを読み取り専用で開き、指定のプロシージャを必要な引数を渡して呼び出すだけのコードを記載する、という方式に変えようと思っています。(masterファイルには書き込みのパスワードを設定します) masterファイルのコードは全て標準モジュールに記載し、基本的には1モジュールあたり1プロシージャにしようと思っています。(masterのプロシージャから別のプロシージャを呼び出すことはせず、A-Zのマクロからmasterの1つのプロシージャを呼び出して完結させる) さらにFunctionや定数用のモジュールを一つ作り、よく使うfunctionや定数などはそこに書こうと思っています。 メリットとしては下記のようなものがあげられると思っています。 ・コードの改修が容易(誰かが開いていても改修できる) ・作成したマクロの管理が容易 ・よく使うFunctionなどは1回だけ書けばどのプロシージャでも使いまわせる この運用方法で問題ないと思っているのですが、懸念されるような事項はありますでしょうか? また別件なのですが、masterファイルのセキュリティを高める意味で、 「A-Zのファイルから開く以外の手段でmasterファイルが開かれた場合は、自動でmasterファイルを閉じる」 というような処理は可能でしょうか? 例えば、workbook_openイベントなどを使って、特定の引数が受け渡されなければ thisworkbook.close false などでmasterファイルを閉じる、といったような感じです。 質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。
- 締切済み
- Excel(エクセル)
- subプロシージャーは標準モジュールではなくフォームのコードを書く部分
subプロシージャーは標準モジュールではなくフォームのコードを書く部分に書いても問題ないのでしょうか? エクセルにVBAでフォームを挿入し、 「Private Sub UserForm_Initialize()」 などのフォームのモジュールに、 Sub test() MsgBox "あああ" End Sub という標準モジュールに書くべきのsubプロシージャーを書いてもなにもエラーにならないし正常に動きます。 subプロシージャーは標準モジュールではなくフォームのコードを書く部分に書いても問題ないのでしょうか? それともエラーにならなくても標準モジュールに書いた方がいいですか?
- ベストアンサー
- オフィス系ソフト
- Excel>マクロを使っていないはずなのにマクロを有効にするかどうか聞かれてしまう
こんにちはtmgmです。 Excelについての質問です。Excelのブックを開くとマクロが有効かどうか毎度聞いてきます。作業としては次のような手順を踏みました。 ------------------------- (1)Book1.xlsにマクロを作成し、保存して閉じる (2)再度Book1.xlsを開き、マクロが不要になったので、コード編集画面を開き、モジュールの解放後、保存(マクロが割り当てられていたボタンも消去) (3)改めてBook1.xlsを開くと、「マクロを有効にするかどうか聞いてくる」(メッセージからも判るとおりセキュリティは中にしています。) ------------------------- 毎回マクロが有効かきかれなくするにはどうすればよろしいでしょうか?モジュールの解放だけではだめでしょうか?お分かりになる方、ご返答宜しく御願いします。
- ベストアンサー
- オフィス系ソフト
- VBAで作成したマクロをデスクトップで起動
ExcelのVBAで作成したマクロをモジュールのみ抜き取って モジュールのみ起動させる事ってできますか? 初心者ですので、分かり易い回答お願い致します。
- ベストアンサー
- Visual Basic
お礼
いえいえ、有難うございました。知らなかった情報を沢山お教えいただいて、当分は今回のご回答を色々試すのに一杯になりそうなほどです。少しでも、マクロの効率が上がり、仕事も効率が上がっていけたらと思っているので、とても有意義な情報でした。 有難うございました。