No.1ベストアンサー
- 回答日時:
コントロールは編集モードならコピーできると思いますが、実行モードで普通にコピー&ペーストを行ってもできないと思われます。
素人の力技ですが下記マクロを作ってみました。おもしろい問題でけっこうはまってしまいました。長くなるので選択状態のチェック等は行っていません。m(_ _)m
同一シートのみで可能です。標準モジュールに貼り付けます。
ショートカットキー Ctrl+Shift+A 等に割り当てて下さい。
コピー元を選択し、コントロールキーを押しながら貼り付け先の左上セルを選択します
順番は逆でもかまいません。複数セルが含まれる矩形セル範囲と単一のセルが指定されていることが要件です。
(これは単一セルと単一セルのコピーと他シートへのコピーは対応していません。)
参考にして下さい。
Public Sub ShapesCopy()
Dim rgCopy As Range 'コピー元セル範囲
Dim rgPaste As Range '貼り付けるセル(左上)
Dim rgShape As Range 'コピー元にあるコントロールの左上セル
Dim myShape As Object '1つのコントロール
Dim rowCopy, clmCopy As Long 'コピー元の左上セルの行、列番号
Dim rowPaste, clmPaste As Long '貼り付けるセルの行、列番号
Dim disRow, disClm As Long 'コピー元と貼り付け先の行・列の隔たり
'*** 選択セルをコピー元と貼り付け先に分離 ***
With Selection
If .Areas(1).Count = 1 Then
Set rgCopy = .Areas(2)
Set rgPaste = .Areas(1)
ElseIf .Areas(2).Count = 1 Then
Set rgCopy = .Areas(1)
Set rgPaste = .Areas(2)
Else
Exit Sub '厳重なチェックは省略しています。
End If
End With
'*** コピー元と貼り付け先の隔たりを計算 ***
rowCopy = rgCopy.Cells(1, 1).Row
clmCopy = rgCopy.Cells(1, 1).Column
rowPaste = rgPaste.Cells(1, 1).Row
clmPaste = rgPaste.Cells(1, 1).Column
disRow = rowPaste - rowCopy '行の隔たり
disClm = clmPaste - clmCopy '列の隔たり
'*** コピー実行 ***
'===== セル =====
rgCopy.Copy: rgPaste.Select: ActiveSheet.Paste
'===== コントロール =====
For Each myShape In ActiveSheet.Shapes 'シート内のコントロールを探す
Set rgShape = Range(myShape.TopLeftCell.Address)
If Union(rgCopy, rgShape).Address = rgCopy.Address Then
'コントロールの左上セルがコピー元内にある場合はコピーする
myShape.Copy
Range(rgShape.Address).Offset(disRow, disClm).Select
ActiveSheet.Paste
End If
Next
rgPaste.Select
End Sub
力作をありがとうございます。
せっかく作成していただいて申し訳ないのですが、
VBAでコピー範囲を選択してペーストしたら図も一緒にペーストされました。
そのソースをいかに示します。
Dim xl As Object
xl.Application.Sheets("TEMP").Range("A1:AN34").Copy xl.Application.Sheets("DATA").Range("A" & CStr(1 + 34 * TotalPage))
これで、TEMPシートのA1:AN34をコピーして、
DATAシートのA列(1 + 34 * TotalPage)行目にペーストしました。
私は別の方法でコピー&ペーストしていたのですが、
同僚がこのロジックで図のペーストができたというので試してみたら、本当にできました。
ご迷惑をおかけしました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Evernote Simplenoteのコピー&ペースト 1 2022/05/17 14:09
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Visual Basic(VBA) vba 隣のセルに値がある行だけ関数をコピー&ペーストしたい A1 100001 A2 100002 1 2023/01/28 14:29
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) エクセルVBAコピー 2 2022/06/08 21:45
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
シートに張り付けたボタンがシートのコピーで消える。
Visual Basic(VBA)
-
エクセル ボタンに設定したマクロごとボタンをコピー
Excel(エクセル)
-
-
4
ListViewで複数選択された項目を一度に削除する方法
Visual Basic(VBA)
-
5
ListView 項目の選択/選択解除について
Visual Basic(VBA)
-
6
VBAのテキストボックスに文字列を貼り付ける方法
Access(アクセス)
-
7
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
8
VBA シートをコピー後、ボタンにマクロ登録
Excel(エクセル)
-
9
excelコマンドボタンと内容を別ファイルにコピー
Excel(エクセル)
-
10
VBAでユーザーフォームの表示を確認
Visual Basic(VBA)
-
11
EXCELでバーコードを作成すると白くなってコードが見えません
その他(Microsoft Office)
-
12
プロシージャからイベントをコールする
Visual Basic(VBA)
-
13
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
14
Excel マクロ VBA プロシージャが大きすぎます のエラー対処方法
Visual Basic(VBA)
-
15
オブジェクト名をVBAで指定する方法を教えてくださ
PowerPoint(パワーポイント)
-
16
オプションボタンの背景を透明にしたい
その他(Microsoft Office)
-
17
UserForm1.Showでエラーになります。
工学
-
18
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
19
EXCEL VBA 複数のImageコントロールにクリップボードに保存されている画像を表示したい
Visual Basic(VBA)
-
20
vba Listviewでのチェックボックスのイベントを教えてください
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル:マクロ「Application...
-
エクセルの2ページ目の作り方
-
エクセルのアポストロフィを一...
-
エクセルで勝手に「折り返して...
-
Excel 行の連続データを列に参...
-
EXCELシートをPowerPointにきれ...
-
「選択範囲を解除してアクティ...
-
EXCELのオートフィルの設定を変...
-
メールソフト「サンダーバード...
-
Excelに、ダブルクォーテーショ...
-
エクセルでの行数・列数を指定...
-
Excel)軽いデーターのはずなの...
-
EXELで複数のとびとびのセルを...
-
エクセルオートフィルで書式を...
-
Excelでコピーした行の挿入を繰...
-
EXCEL数値が存在する列の項目名...
-
エクセル・数値が変化したらカ...
-
エクセルで隣接していない複数...
-
フォームのテキストボックスの...
-
Excelの連続データから数行おき...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル:マクロ「Application...
-
エクセルの2ページ目の作り方
-
エクセルのアポストロフィを一...
-
Excel 行の連続データを列に参...
-
エクセルで勝手に「折り返して...
-
Excelでコピーした行の挿入を繰...
-
EXCELのオートフィルの設定を変...
-
EXCELシートをPowerPointにきれ...
-
エクセルで、選択範囲の数値全...
-
Excel)軽いデーターのはずなの...
-
メールソフト「サンダーバード...
-
エクセルでの行数・列数を指定...
-
「選択範囲を解除してアクティ...
-
Excelに、ダブルクォーテーショ...
-
エクセル 別シートへのコピー...
-
エクセルオートフィルで書式を...
-
エクセルで値だけコピーして背...
-
EXELで複数のとびとびのセルを...
-
Excelで、横並べのデータを縦並...
-
エクセル・数値が変化したらカ...
おすすめ情報