|
ichinose さん 回答ありがとうございます。
そうです、この質問(http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=13840;id=excel)と関連しています。
具体的には、そのエクセルには、
シート2とシート3しかなく、
シート3にコマンドボタンが貼っています。
コマンドボタンはの中身は、クリックイベントで、
call errchk と書かれているだけで、errchkの中身は
モジュールに記述しています。
処理の流れで、
このマクロがopen した時に、あるエクセル(マクロ無し)を起動して
その中身を、マクロエクセルのシート1にシートコピーして、シート1を作成
します。(シートコピーでないとだめなのです。データ量が
多い場合があるので、copy,pasteだと遅いです)
このエクセル(マクロ無し)をcloseします。
次に、シート3のコマンドボタンを、シート1に貼り付けたい
という主旨です。(フォームを使うのはやめてくれといわれました)
それで、シート3にあるコマンドボタンをコピーしてシート1に
貼り付けたいということです。
逆に、エクセル(マクロ無し)に対して、マクロエクセルのコマンドボタン
(マクロ入り)を貼り付けてもいいです。この場合
貼り付けた後、マクロエクセルはcloseします。
できるのでしょうか。
知っていましたら、教えて下さい。
▼ichinose さん:
>▼WAKO さん、ちゃっぴさん
>おはようございます。
>
>>シート3にマクロがはいっているのですが、
>>これをマクロを使って(OPENする時)、シート1にコピーする事はできるでしょうか。
>>シートコピー以外の方法です。
>>どなたか知っていましたら教えて下さい。
>'=============================================================
>Sub main()
> Call copy_code(ThisWorkbook, "sheet3", "sheet1")
>End Sub
>'==================================================================
>Sub copy_code(bk As Workbook, mdlnm1 As String, mdlnm2 As String)
>'対象ブックのコードモジュール内容を他のコードモジュールにコピーする
>'bk : 操作対象ブック
>' mdlnm1 コピー元コンポーネント名
>' mdlnm2 コピー先コンポーネント名
> Dim mdlcode As String
> With bk.VBProject.VBComponents(mdlnm1).CodeModule
> mdlcode = .Lines(1, .CountOfLines)
> End With
> With bk.VBProject.VBComponents(mdlnm2).CodeModule
> .DeleteLines 1, .CountOfLines
> .InsertLines 1, mdlcode
> End With
>End Sub
>
>上記のコードでそれらしいことは出来ると思いますが、
>
>↓のご質問と関連していますよね?
>
>http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=13840;id=excel
>
>だとしたら、はっきりは言えませんが、他の方法も模索された方がよいかもしれませんよ
>
>どんなマクロをコピーしたいのかコード例を提示してみて下さい
>(全部なくてもいいので)。
|
|