- ベストアンサー
Excel VBAの機能を別ブックに複写
こんにちは。 1つのブックにボタンを追加し、VBAをコーディングし機能を 持たせました。 このボタン+VBAの機能を他の100個のブックにコピーしていきたいのですが 何か良い方法はありませんか? EXCELは2007です。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
普通はこういうことを考える場合、ボタンクリックをした時の処理をする対象(ブックなど)を、そのつど利用者に指定させて、処理対象のブックは違えども、処理は大筋で同じという場合が多い。だから同じVBAコードを多数の対象ブックに保存しなくてもできるのでは。 処理の初めにブック名を(プログラムで)聞いて、そのブックを対象にしてある一つのプログラムが走る。 エクセルの例では、ブック-シートーセル範囲は、他ブックにあるコードからでも、読(参照したり)んだり、書きこんだりできるのだから。 ー また他の話題ではあるが、ボタンをたくさん設けて、そのある1つのボタンを押すと、その操作者が決めた対象(ブック)に、決まった処理をするなどのことを考える者もいるかもしれないが、ボタンが増えて、選択しずらいなどとなる。 また同じようなコードの書き並べになることが多い。 例えばボタンをフォーム上に50個規則正しく並べて、カナ50音に対応させて、(複数)押したボタンのカナ文字列を作るとなるとこういう問題が起こる。 これはVBAでも「クラス」を使うという課題で説明れることもあるものだが、初心者にはむつかしいものだ。 質問者は、VBAというより、プログラムの様々な使い方の経験が少ないので、ないかと思って、質問以前の発想が適切かどうか疑問がわいた。 発想というか処理ロジックを組み立てることを鍛えることが文法を学んでのちの 最大テーマと思うが、意識しているのかな。
その他の回答 (3)
- quindecillion
- ベストアンサー率48% (87/180)
https://oshiete.goo.ne.jp/qa/8347077.html こちらに似たような質問がありました。 2013ではありますが、普通にコピーするだけで元ブックのマクロを読みに行くようになっています。 そのままコピーしても使えそうですがこの方法は使えないとすると…。 http://officetanaka.net/excel/vba/vbe/07.htm#sample04 こちらが参考になりますでしょうか。 もしくは、同時に作ったものと移したいものを開き、モジュールのd&dでコピーし、コマンドボタンは作成する。とかでしょうか。 すべて自動化するよりは早い気がします。
お礼
回答ありがとうございます。 やはりモジュールはインポートし、ボタンは貼り付けようかと思います。
- quindecillion
- ベストアンサー率48% (87/180)
vbaで行うとすると 100のファイルを全て取得する。(ブックでありシートではないので…。) aファイルを開く bコピーする c保存して閉じる aからcを100回 ということをやることになるかと。 負荷がとんでもないこもになりそうです。 大変ですが作成時間からするとvba記載ブックと同一名のブックへのコピーであれば元ブックの名前を変えて手作業が早いかもしれません。
補足
回答ありがとうございます。 レイアウトだけが同じで、ブック名、内容は全部違うのです。 VBAでVBEを操作するというサイトを紹介して頂きましたが ボタンもモジュールもコピーというと難しいでしょうか?
- tsubu-yuki
- ベストアンサー率46% (179/386)
VBAでVBEを操作する方法・・ http://officetanaka.net/excel/vba/vbe/07.htm ※自己責任でどうぞ。
補足
回答ありがとうございます。 これでフォームコントロールのボタンを元のブックには配置してありますが 他にもコピーされるのでしょうか?
お礼
貴重なご意見ありがとうございます。 あるロジックを完成させた為、他の全ブックにも 同様の機能を持たせたかったのですが。 モジュールをインポート処理 ボタンは貼り付けようと思います。