
エクセルのVBAで新しくブックを開いた上でそのブックにVBAを埋め込む事はできますか?
分かりにくいと思うので具体的にかきます。
今、ブック1にコマンドボタンAがあり、このボタンAを押す事により
以下の2つを実現したいです。
(1)あたらしくブック2を開きます。
(2)更にこのブック2のシートにはコマンドボタンBができており
(3)このボタンBの機能としてこのボタンBを押すと
ブック2のセルA1に数字1が入ります
ブック2が開いた後で自分で、コマンドボタンBのマクロをブック2のモジュール内に書くのは簡単ですが、ブック1のコマンドボタンAを押したときに自動的にブック2のマクロを書き込みたいのです。
今、ボタンAを押すことで(1)と(2)まではできるのですが
(3)のやり方がわかりません。
そもそもこういった事はできないのでしょうか?
ご存知の人がいたら教えてください。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
特別に公開します。
'★★☆ マクロにマクロを作らせる ☆★★
Option Explicit
Sub start()
'新しいブック作成
Workbooks.Add
[C1] = "私の名前は " & ActiveWorkbook.Name & " です"
[C1].Font.ColorIndex = 3
'マクロ起動用ボタンの作成
ActiveSheet.Buttons.Add(50, 30, 320, 30).Select
Selection.OnAction = ActiveWorkbook.Name & "!SUMPLE"
Selection.Characters.Text = "私は新ブックに新しく作られた新マクロ実行ボタンです"
[A1].Select
'標準モジュールを挿入
ActiveWorkbook.VBProject.VBComponents.Add vbext_ct_StdModule
'挿入したモジュールにコードを書き込む
Application.VBE.CodePanes(1).CodeModule _
.AddFromString "sub SUMPLE()" + Chr(10) _
+ "MsgBox ""私は新しく挿入されたブックの MsgBox です"" & Chr(10) & ""マクロで書かれたマクロから実行しています "" & chr(10) & ""OKボタンで新ブック(私自身)を閉じます""" _
+ Chr(10) + "ThisWorkbook.Close False" _
+ Chr(10) + "end sub"
End Sub
"[使い方]
マクロを実行すると、新しいブックを挿入して、そこに新しいモジュールを挿入、ソースコードをマクロから書き込みます。新しいブックにボタンが貼り付けられていますのでクリックしてみて下さい。"
"[内容説明]
このブックには、VBE画面のメニューバーにある""ツール""→""参照設定""→""参照可能なライブラリファイル一覧""から
""Microsoft Visual Basic for Application Extensibility""
のチェックをオンして参照するように設定してあります。それによりモジュール操作に対する各種コマンドが使用可能になります。
新ブックにはボタンが作成されますので、それをクリックしてモジュールが作成されていることを確認してください。
確認後、新ブックは自動で削除され跡形を残しません。"
"[ポイント]
●VBComponents コレクションの操作
●CodePanes コレクションの操作"
詳しいことは、オートシェイプでお絵かきコンテスト で、検索してみてください。(これ以上は、管理人からお叱りを受けますので 詳しくは説明出来ません。)
回答ありがとうございます。
参考になりました。
少しカスタマイズすればすぐ使えるようになりました。
自分だけで調べてたら数日間かかっていたでしょう。
大変ありがたかったです。
ありがとうございました。
No.4
- 回答日時:
こんばんは。
>エクセルのVBAで新しくブックを開いた上でそのブックにVBAを埋め込む事はできますか?
>そもそもこういった事はできないのでしょうか?
数年前はしていたようですが、今は、VBA で、そういうことはしません。もし、新規ブックで動かしたければ、アドインにすればよいです。
回答ありがとうございます。
アドインの方法は使った事がなかったのでよく分からないのですが
これを機会に少し調べてみたいと思います。
どうもありがとうございました。
No.3
- 回答日時:
人間が作ったソフトですから、原則論では一般的に何でもできます。
質問の点までは、実例などもWEBに少数が載っています(特に海外の方の)。
質問の内容は、プログラムでプログラム(モジュール)を作ることですね。
具体的コード内容は、#2のご回答が出てしまっています。
WEB照会で「VBPROJECT.VBCOMPONENTS」で照会(Googleなど)すれば、相当数出てきます。
http://www.tech-notes.dyndns.org/excel_lib/add_m …
ほか。
過去の質問
http://oshiete1.goo.ne.jp/kotaeru.php3?q=756026
もあったようです。
ーーー
しかしエクセルVBAぐらいでは、そういう使い方はせず
手作業で
(1)新しいブックブック2を作る
(2)ブック2のシートにはコマンドボタンを張り付ける
(3)コマンドボタンをクリックすると決まった処理が行われるよう
クリックイベントをブック2のシートに作る。
そして
ブック1のボタンを押すと、ブック2を開く
こういうやり方をするものと思います。
ーー
別件ですが、コントロールの実行時作成も、解説書ではあまり解説は多くありません。エクセルという製品にふさわしいレベルのVBAの使い方の限度というものがあると考えているのではと思います。
回答ありがとうございます。
英語のサイトは敬遠してたのですが
こういう知識は海外のほうが豊富にあるのかもしれないですね。
過去の質問についても検索ワードをうまく考えられずに
見つける事がでなくて質問させていただいたのですが
やはり同様の質問があったようですね。
参考にさせてもらいました。
どうもありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
- Visual Basic(VBA) 【ExcelVBA】動的にボタン、ボタン名を生成できますか? 7 2022/04/08 12:54
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Excel(エクセル) vba 同じブック内での転記について 4 2023/01/15 14:42
- Visual Basic(VBA) vbaについて 主に以下のような設定をしたいです。 Aブックの表の行数が20未満だったら Bブックの 1 2023/06/08 23:40
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Excel(エクセル) アンケート集計用VBAについて教えて下さい。 約100人にアンケート内容が入ったExcelファイルを 1 2022/07/27 13:12
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで保存しないで閉じると空の...
-
【Excel VBA】マクロでExcel自...
-
エクセル関数>参照ファイル名...
-
マクロの保存先、開いてるすべ...
-
エクセルのvbaにて thisworkboo...
-
【Excel】マクロの保存先について
-
【Excel】特定セルの内容をテキ...
-
マクロ 自動でパスワード及び指...
-
excelで直前に参照していたブッ...
-
EXCELブックが勝手に開いて困っ...
-
複数のbookから特定のセル(行...
-
エクセル;相対パスを絶対パスへ...
-
エクセルで使用期限付きのブッ...
-
エクセルで特定のワークシート...
-
ファイル名変更後も、マクロを...
-
[フィルターオプションの設定]...
-
個人用マクロブックの有無
-
ExcelVBAで困っています。
-
1つのEXCELファイルをインター...
-
エクセル タスクスケジューラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで保存しないで閉じると空の...
-
エクセル関数>参照ファイル名...
-
【Excel VBA】マクロでExcel自...
-
マクロの保存先、開いてるすべ...
-
エクセルのvbaにて thisworkboo...
-
EXcelのマクロで相対パスでファ...
-
【Excel】マクロの保存先について
-
エクセル;相対パスを絶対パスへ...
-
EXCELブックが勝手に開いて困っ...
-
エクセルで未保存に対するメッ...
-
excelで直前に参照していたブッ...
-
EXCELのボタンによるマクロの登...
-
ファイル名変更後も、マクロを...
-
エクセルで使用期限付きのブッ...
-
【Excel】特定セルの内容をテキ...
-
複数のExcelファイルの印刷設定...
-
エクセルを開いて文字を打つ際...
-
EXCELマクロで、開いてはいるが...
-
エクセルで複数ファイルのセル...
-
[フィルターオプションの設定]...
おすすめ情報