エクセルの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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
字面がカッコいい英単語
あなたが思う「字面がカッコいい英単語」を教えてください。
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
エクセルVBAで作成した別ブックにVBAを記述したい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで保存しないで閉じると空の...
-
マクロの保存先、開いてるすべ...
-
名前の変わるブックをアクティ...
-
【Excel VBA】マクロでExcel自...
-
[フィルターオプションの設定]...
-
excelで直前に参照していたブッ...
-
同一フォルダ内のファイルを開く
-
エクセル関数>参照ファイル名...
-
【Excel】マクロの保存先について
-
【Excel】特定セルの内容をテキ...
-
エクセルで未保存に対するメッ...
-
EXcelのマクロで相対パスでファ...
-
エクセルでマクロを組んでいな...
-
エクセルを閉じる時のVBAのプロ...
-
エクセルを開いて文字を打つ際...
-
エクセルVBA 個人用マクロブッ...
-
マクロ 自動でパスワード及び指...
-
ExcelVBAで困っています。
-
エクセルVBAで作成した別ブック...
-
WPSOffice_マクロの有効化について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで保存しないで閉じると空の...
-
エクセル関数>参照ファイル名...
-
【Excel VBA】マクロでExcel自...
-
マクロの保存先、開いてるすべ...
-
【Excel】マクロの保存先について
-
エクセル;相対パスを絶対パスへ...
-
EXcelのマクロで相対パスでファ...
-
[フィルターオプションの設定]...
-
excelで直前に参照していたブッ...
-
複数のExcelファイルの印刷設定...
-
エクセルのvbaにて thisworkboo...
-
EXCELのボタンによるマクロの登...
-
名前の変わるブックをアクティ...
-
エクセルVBAで作成した別ブック...
-
エクセルで使用期限付きのブッ...
-
【Excel】特定セルの内容をテキ...
-
エクセルで未保存に対するメッ...
-
EXCELマクロで、開いてはいるが...
-
複数のbookから特定のセル(行...
-
エクセルVBA 個人用マクロブッ...
おすすめ情報