タイトルのとおりです。
マクロを登録したボタンをセルのサイズに合わせて配置しました。
そのセルのアドレスを基準にしてオフセット(-1, -12)したセルに、別シートの複数セルをコピーして挿入したいと思い下記のコードを書いたのですが上手くいきません。
ボタンに登録するコード
--------------------------------------------------------------
Sub btnNo01_Click()
MsgBox ActiveSheet.Shapes(Application.Caller).TopLeftCell.Address
Call button01
End Sub
--------------------------------------------------------------
呼び出したコード
--------------------------------------------------------------
Sub button01()
Dim s1 As Worksheet, s2 As Worksheet 's1 が作業シート、s2がコピー元シート
Set s1 = ActiveWindow.SelectedSheets(1)
Set s2 = Sheets("コピー元シート")
s2.Range("頁追加用!A2:T29").Copy
s1.Offset(-1, -12).Select
Selection.Insert shift:=xlDown
End Sub
--------------------------------------------------------------
ボタンの位置を拾わずに貼り付けセルを直接指定すれば動くのですが、ボタンをコピーしても
そのボタンの位置からオフセット参照できれば汎用性に富むと思いこの様なコードを書きました。
添削の程よろしくお願い致します。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
No1です
>セルの絶対参照の値が表示されているので
>位置自体は拾っているとは思うのですが
拾っていても、そのまま捨ててしまえば何もしないのと同じことです。
>そこからオフセットした場所に~~手段が分からず
その取得したセルを基準にすれば良いだけでは?
少なくとも
Worksheet.Offset(~~
はないでしょう。
No.1
- 回答日時:
こんにちは
ご提示のコードだけでは意図を測りかねますが、ご質問文と照らしてみると…
>s2.Range("頁追加用!A2:T29").Copy
アドレスでシートを含めて指定していますが、s2のシートとは異なっているように見えます。
作者はどちらのシートを指示したいつもりなのでしょうか?
(VBAの場合、アドレスにシート名を入れるような用法はあまり行わないと思います)
>s1.Offset(-1, -12).Select
変数s1はワークシートなので、Offsetメソッドは存在しないはず。
基準としたいセル位置(=Rangeオブジェクト)からのオフセットを示したいのではないでしょうか?
アドバイスありがとうございます。
シートの指定はコードをコピペした際、少しでも第三者に分かりやすいようにと修正していたのですが
修正漏れでかえって分かり辛くなってしまいました。
ご指摘ありがとうございました。
基準としたいセルはボタンを配置したセルです。
メッセージボックスにはそのセルの絶対参照の値が表示されているので
位置自体は拾っているとは思うのですが、そこからオフセットした場所に
コピーしたセルを挿入する手段が分からず困っております…
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBAで教えて頂きたいのですが? 2 2022/12/31 20:28
- Visual Basic(VBA) 別ブックからシートのコピー 3 2022/04/01 20:07
- Excel(エクセル) vba アクティブシートのA1セルの値を基準に複数のシートコピー&シート名を 6 2023/04/12 18:36
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの「0」だけ非表示、小数...
-
日付が未入力の際はゼロか、空...
-
エクセルで1月0日と表示される!!
-
Excelで複数シートの選択セルを...
-
エクセルで条件に一致したセル...
-
EXCELマクロで、シート間でのコ...
-
Excelシートの保護時にデータの...
-
Rangeメソッドは失敗しました。...
-
エクセルで20万行あるシート...
-
(Excel)あるセルに文字を入力...
-
エクセルのセルに、マウスで選...
-
シート参照で変数を使いたい(EX...
-
エクセルで、加筆修正したセル...
-
複数シートの同じセル内容を1シ...
-
ExcelでTODAY関数を更新させな...
-
別シートのセルを絶対参照にする
-
VBAで、セル(Range)のオブジ...
-
VBAで変数に関数式の結果をセッ...
-
オプションボタンを別シートに連動
-
Excelで表計算結果のみ表示する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの「0」だけ非表示、小数...
-
日付が未入力の際はゼロか、空...
-
エクセルで1月0日と表示される!!
-
エクセルで条件に一致したセル...
-
Rangeメソッドは失敗しました。...
-
(Excel)あるセルに文字を入力...
-
Excelで複数シートの選択セルを...
-
エクセルで複写のように自動入...
-
Excelシートの保護時にデータの...
-
シート参照で変数を使いたい(EX...
-
別シートのセルを絶対参照にする
-
複数シートの同じセル内容を1シ...
-
Excelでスクロールすると文字が...
-
Aというブックの1というシート...
-
エクセルで20万行あるシート...
-
エクセルの文字
-
エクセルで、加筆修正したセル...
-
VBAで変数に関数式の結果をセッ...
-
ExcelでTODAY関数を更新させな...
-
VBAで、セル(Range)のオブジ...
おすすめ情報
失礼しました。
s2はどちらも"コピー元シート"で統一します。
分かりやすくしようとしてむしろ混乱を招いてしまいました。
× s2.Range("頁追加用!A2:T29").Copy
○ s2.Range("コピー元シート!A2:T29").Copy