[[20150421164049]] 『コントロールボタンのコピー』(ANGY) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『コントロールボタンのコピー』(ANGY)

マクロを組んだコントロールボタンをコピーしてすべてのシートを選び貼り付けにしたら、「データを貼り付けできません。」と出てきました。
すべてのシートに一括で貼り付けする方法を教えてください。

< 使用 Excel:Excel2013、使用 OS:Windows7 >


 フォームツールのボタンですね。
これに限らず、たとえば楕円を挿入して、これをコピーしてほかのシートを選んで貼り付け。これはOKですよね。
でも、楕円をコピーして、シートをCtrlキーを押しながら複数選択して Ctrl/v とやると、貼り付けできませんよね。

 これは仕様じゃないでしょうか?

(β) 2015/04/21(火) 17:38


 ActiveXコントロールだったら、の場合です。

 そのコントロールに記述してあるコードも気になるところです。

 コード内容によっては他のシートでは意図したとおりに動作しない
 可能性があります。

 また、わざわざコントロールに記述しなくてもアドインなどで対処
 できるかもしれませんし、ThisWorkbookモジュールに記述すれば
 いいことかもしれません。
(カリーニン) 2015/04/21(火) 20:06

コメントありがとうございます。

仕事で施工写真図なるものを使ってるのですが、以前の会社で使っていたものを
応用して今の会社で使っている写真台帳に手を加えているのですが、
元の写真台帳は写真が3枚だったのですが今は4枚あるので
マクロをコピーして作り写真はうまく貼れたのですが、
ボタンが作ったシートにだけあって他のシートに無いことに気づき(あたりまえなことではずかしい(^_^;))
コピーしようと思ったら出来なかったとゆう訳です。
シートが100枚近くあるので、当然ながら1つ1つは・・・(^_^;)

何せ初心者なものですから申し訳ありませんが、わかりやすい言葉で教えて頂けると有難いです。

よろしくお願いします。
(ANGY) 2015/04/22(水) 09:43


 そういうことじゃなくて、情報がたりねーんですよ。
 >マクロを組んだコントロールボタン
 これが、ActiveXコントロールなのか、フォームのコントロールなのか、又は図なのか
 コードはシートモジュールに記載されているのか、標準モジュールなのか、アドインブックなのか等

 リンク先はActiveXコントロール (リンク先のリンクにフォームコントロールの説明もあります。)
http://www.relief.jp/itnote/archives/excel-make-macro-button-activex.php

 シートモジュール 標準モジュール
http://officetanaka.net/excel/vba/beginner/10.htm

(稲葉) 2015/04/22(水) 10:27


 補足
 ボタンの種類と、コードが記載されている場所がわからないと
 何を100シート分コピーしなくてはいけないのかわからないので、
 ↑のような書き方をしました。

 ちなみに、A1をダブルクリックすると、「マクロを実行しますか? [はい/いいえ]」のような
 ダイヤログを出して実行するなら、ボタンも必要ないし
 カリーニンさんが提案されているThisWorkBookモジュールに記載すれば済むことなので
 一番簡単かと思います。

 そうすれば、すべてのシートを選択して、A1セルに「ここをダブルクリック」みたいに一気に
 文字入れられますしね!

 なので、つべこべ言わず、そのコード全部さらしたほうが早いですよ!

(稲葉) 2015/04/22(水) 10:34


稲葉さんのセルをボタンに見立てる案が魅力的ですが、
とりあえず質問者さんの要望に近い回答するなら、

ボタンだけをコピーしないで
周りのセル範囲ごとコピーすると貼り付けできませんか?

(マナ) 2015/04/22(水) 12:43


 >シートが100枚近くあるので、当然ながら1つ1つは・・・(^_^;) 

 でも、たったの100枚。Q/Aで、回答を待っている間にできますよね?
 1つに3秒かかったとして300秒=5分。

(β) 2015/04/22(水) 12:55


すいません、初心者なもんですから・・・。

ボタン・・・フォームコントロール
コード・・・標準モジュール

です。こんなんで大丈夫でしょうか?

ちなみにマナさんの方法を試してみましたが、出来ませんでした。

すいません、みなさんのコメントで勉強させていただきます。
よろしくお願いします。
(ANGY) 2015/04/23(木) 12:42


 >なので、つべこべ言わず、そのコード全部さらしたほうが早いですよ!

(稲葉) 2015/04/23(木) 12:52


追加

すいません、肝心のコードですね・・・。

Sub 写真1()

    On Error GoTo ErrEnd
    Range("B9").Select
    Application.Dialogs(xlDialogInsertPicture).Show
    Selection.ShapeRange.LockAspectRatio = msoTrue
    Selection.ShapeRange.Width = 338
    Selection.ShapeRange.ZOrder msoBringToFront
    Range("A21").Select
    Exit Sub
ErrEnd:
    Range("A21").Select
End Sub

これが写真4まであります。

これでいいですか?
(ANGY) 2015/04/23(木) 13:07


ボタンを貼ってあるシートのモジュールとして、以下を実行する手はいかがでしょう?
ボタン名とか貼り付け先は、現状に合わせて変更してください。

 Sub test()
    Dim i As Long

    Shapes.Range(Array("Button 1", "Button 2", "Button 3", "Button 4")).Select
    Selection.Copy

    For i = 1 To Sheets.Count
        If Sheets(i).Name <> Me.Name Then
            With Sheets(i)
                .Activate
                .Range("C9").Activate
                .Paste
            End With
        End If
    Next i
 End Sub
(???) 2015/04/23(木) 13:53

 100枚のシートで、ボタン4つをコピーした後、その位置を変更するのが、ちょっと大変なら。
 同じくシートモジュールに。

Sub Test2()

    Dim btn As Button
    Dim sh As Worksheet

    For Each sh In Worksheets
        If sh.Name <> Me.Name Then
            sh.Activate
            For Each btn In Buttons

                sh.Range(btn.TopLeftCell.Address).Activate
                btn.Copy
                sh.Paste
            Next
        End If
    Next

End Sub

(β) 2015/04/23(木) 14:58


たくさんのコメントありがとうございます。

移動がありバタバタしてなかなかこの作業が出来ない状況にあります。
みなさんの教えていただいたのを参考に、すべて試してみたいと思います。

また頭を抱え込むことになったら、みなさんに助けていただくことになるかもしれません。
その時は、よろしくお願いします。

ありがとうございました。
(ANGY) 2015/04/29(水) 14:45


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.