Excel VBA 質問スレッド №903 (解決済)
VBAでセル内に設置されているフォームコントロールをマクロごと別のセルへコピーする
投稿者 : TG 投稿日時 : 2022/07/26(Tue) 15:02:31 OS : Windows 11 EXCEL : Excel 2021
VBAを使わずに範囲を選択、Ctrl+C、貼り付け先を選択、Ctrl+Vであれば
フォームコントロールのボタンと設定されているマクロがちゃんとコピーされるのですが
VBAで範囲を選択、選択範囲をコピー、貼り付け先を選択、コピーしたセルを貼り付けとすると
フォームコントロールのボタンだけは一切貼り付けされない状態です。
どのようにすればフォームコントロールのボタンごとコピーできるのでしょうか?
貼り付け先はテーブル内の最終行1個下の空白セルとなります。
VBAを使わずに範囲を選択、Ctrl+C、貼り付け先を選択、Ctrl+Vであれば
フォームコントロールのボタンと設定されているマクロがちゃんとコピーされるのですが
VBAで範囲を選択、選択範囲をコピー、貼り付け先を選択、コピーしたセルを貼り付けとすると
フォームコントロールのボタンだけは一切貼り付けされない状態です。
どのようにすればフォームコントロールのボタンごとコピーできるのでしょうか?
貼り付け先はテーブル内の最終行1個下の空白セルとなります。
スポンサーリンク
[返信 1] Re : VBAでセル内に設置されているフォームコントロールをマクロごと別のセルへコピーする
投稿者 : 名無し 投稿日時 : 2022/07/26(Tue) 18:36:21
> VBAで範囲を選択、選択範囲をコピー、貼り付け先を選択、コピーしたセルを貼り付けとすると
> フォームコントロールのボタンだけは一切貼り付けされない状態です。
テストしたところ貼りつきます。
コードを載せた方が良いと思います。
> 貼り付け先はテーブル内の最終行1個下の空白セルとなります。
「Excel VBA 最終行の取得」等で調べてみてください。
> VBAで範囲を選択、選択範囲をコピー、貼り付け先を選択、コピーしたセルを貼り付けとすると
> フォームコントロールのボタンだけは一切貼り付けされない状態です。
テストしたところ貼りつきます。
コードを載せた方が良いと思います。
> 貼り付け先はテーブル内の最終行1個下の空白セルとなります。
「Excel VBA 最終行の取得」等で調べてみてください。
[返信 2] Re : VBAでセル内に設置されているフォームコントロールをマクロごと別のセルへコピーする
投稿者 : ピロリ 投稿日時 : 2022/07/26(Tue) 20:05:02
■[質問] TGさん(2022-07-26 15:02:31)の記事
> どのようにすればフォームコントロールのボタンごとコピーできるのでしょうか?
ソースコードが分からないので下記サンプルで試してみましたが、名無しさん と同じく
問題無くボタンもコピーできました。。。
■[質問] TGさん(2022-07-26 15:02:31)の記事
> どのようにすればフォームコントロールのボタンごとコピーできるのでしょうか?
ソースコードが分からないので下記サンプルで試してみましたが、名無しさん と同じく
問題無くボタンもコピーできました。。。
Sub test()
'test1
Range("A1").Copy
Range("B1").Select
ActiveSheet.Paste
'test2
Range("A1").Copy Destination:=Range("B2")
End Sub
[返信 3] Re : VBAでセル内に設置されているフォームコントロールをマクロごと別のセルへコピーする
投稿者 : 名無し 投稿日時 : 2022/07/26(Tue) 20:46:37
ちなみに私が試したコードも載せておきます。
B2セルにフォームコントロールのボタンを作って試しました。
>VBAで範囲を選択、選択範囲をコピー、貼り付け先を選択、コピーしたセルを貼り付け
この部分を忠実にコードにしたつもりです。
ちなみに私が試したコードも載せておきます。
B2セルにフォームコントロールのボタンを作って試しました。
>VBAで範囲を選択、選択範囲をコピー、貼り付け先を選択、コピーしたセルを貼り付け
この部分を忠実にコードにしたつもりです。
Sub main()
ThisWorkbook.Worksheets(1).Range("A1:C3").Select
Selection.Copy
Range("A4").Select
ActiveSheet.Paste
End Sub
[返信 4] Re : VBAでセル内に設置されているフォームコントロールをマクロごと別のセルへコピーする
投稿者 : TG 投稿日時 : 2022/07/27(Wed) 08:43:37
ご返信ありがとうございます。
ActiveSheet.Pasteではなく
Selection.PasteSpecial Paste:=xlPasteAllで張り付けていたのが悪かったようです。
お手数おかけしました。
ご返信ありがとうございます。
ActiveSheet.Pasteではなく
Selection.PasteSpecial Paste:=xlPasteAllで張り付けていたのが悪かったようです。
お手数おかけしました。
[返信 5] Re : VBAでセル内に設置されているフォームコントロールをマクロごと別のセルへコピーする
投稿者 : 名無し 投稿日時 : 2022/07/27(Wed) 09:07:20
■[返信 4] TGさん(2022-07-27 08:43:37)の記事
>> ご返信ありがとうございます。
>>
>> ActiveSheet.Pasteではなく
>>
>> Selection.PasteSpecial Paste:=xlPasteAllで張り付けていたのが悪かったようです。
>> お手数おかけしました。
>VBAを使わずに範囲を選択、Ctrl+C、貼り付け先を選択、Ctrl+Vであれば
>Selection.PasteSpecial Paste:=xlPasteAllで張り付けていたのが悪かったようです。
上記の2行から誤解をされている部分があるので補足です。
Ctrl+Vと形式をつけて貼り付けは違う操作ですよね。
VBAではなく、手で実行しても、Ctrl+Vと、形式をつけて貼り付けで「全て」を選ぶのでは
結果が変わります。ぜひこの機会に、手で実行して試してみてください。
PasteSpecialが形式をつけて貼り付けという命令で、
Paste:=xlPasteAllがすべてを選択してという命令です。
■[返信 4] TGさん(2022-07-27 08:43:37)の記事
>> ご返信ありがとうございます。
>>
>> ActiveSheet.Pasteではなく
>>
>> Selection.PasteSpecial Paste:=xlPasteAllで張り付けていたのが悪かったようです。
>> お手数おかけしました。
>VBAを使わずに範囲を選択、Ctrl+C、貼り付け先を選択、Ctrl+Vであれば
>Selection.PasteSpecial Paste:=xlPasteAllで張り付けていたのが悪かったようです。
上記の2行から誤解をされている部分があるので補足です。
Ctrl+Vと形式をつけて貼り付けは違う操作ですよね。
VBAではなく、手で実行しても、Ctrl+Vと、形式をつけて貼り付けで「全て」を選ぶのでは
結果が変わります。ぜひこの機会に、手で実行して試してみてください。
PasteSpecialが形式をつけて貼り付けという命令で、
Paste:=xlPasteAllがすべてを選択してという命令です。
[返信 6] Re : VBAでセル内に設置されているフォームコントロールをマクロごと別のセルへコピーする
投稿者 : TG 投稿日時 : 2022/07/27(Wed) 09:50:08
■[返信 5] 名無しさん(2022-07-27 09:07:20)の記事
> ■[返信 4] TGさん(2022-07-27 08:43:37)の記事
> >> ご返信ありがとうございます。
> >>
> >> ActiveSheet.Pasteではなく
> >>
> >> Selection.PasteSpecial Paste:=xlPasteAllで張り付けていたのが悪かったようです。
> >> お手数おかけしました。
>
>
> >VBAを使わずに範囲を選択、Ctrl+C、貼り付け先を選択、Ctrl+Vであれば
> >Selection.PasteSpecial Paste:=xlPasteAllで張り付けていたのが悪かったようです。
>
> 上記の2行から誤解をされている部分があるので補足です。
> Ctrl+Vと形式をつけて貼り付けは違う操作ですよね。
>
> VBAではなく、手で実行しても、Ctrl+Vと、形式をつけて貼り付けで「全て」を選ぶのでは
> 結果が変わります。ぜひこの機会に、手で実行して試してみてください。
>
> PasteSpecialが形式をつけて貼り付けという命令で、
> Paste:=xlPasteAllがすべてを選択してという命令です。
>
>
>
たしかにCtrl+Vのペースト=PasteSpecialと認識しておりました。
ありがとうございます。
■[返信 5] 名無しさん(2022-07-27 09:07:20)の記事
> ■[返信 4] TGさん(2022-07-27 08:43:37)の記事
> >> ご返信ありがとうございます。
> >>
> >> ActiveSheet.Pasteではなく
> >>
> >> Selection.PasteSpecial Paste:=xlPasteAllで張り付けていたのが悪かったようです。
> >> お手数おかけしました。
>
>
> >VBAを使わずに範囲を選択、Ctrl+C、貼り付け先を選択、Ctrl+Vであれば
> >Selection.PasteSpecial Paste:=xlPasteAllで張り付けていたのが悪かったようです。
>
> 上記の2行から誤解をされている部分があるので補足です。
> Ctrl+Vと形式をつけて貼り付けは違う操作ですよね。
>
> VBAではなく、手で実行しても、Ctrl+Vと、形式をつけて貼り付けで「全て」を選ぶのでは
> 結果が変わります。ぜひこの機会に、手で実行して試してみてください。
>
> PasteSpecialが形式をつけて貼り付けという命令で、
> Paste:=xlPasteAllがすべてを選択してという命令です。
>
>
>
たしかにCtrl+Vのペースト=PasteSpecialと認識しておりました。
ありがとうございます。
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2026-04-03 11:24:45 )