• ベストアンサー
  • 困ってます

マクロで書式コピー_コピー先の指定の仕方で・・・

  • 質問No.8647826
  • 閲覧数184
  • ありがとう数3
  • 回答数2

お礼率 100% (12/12)

VBA勉強中の初心者です。

マクロで書式のコピーをしようと思い
まずは、マクロの記録をしました。

ですが、いつも同じセルにコピーする訳ではないので
プログラムに手を加えてペースト先を選択したセル
もしくは、コピー元の何行下の行に・・・とか
になるように書き変えたいのです。
(※筆者のやりたい事は、項目毎に毎月の集計欄を2行ずつ追加します。
『6月合計/6月実績』→『7月合計/7月実績』みたいに何月だけを変更して
書式は一緒で値はクリアにして・・と言うような事を1枚のSheet上で複数回
繰り返します。


〈マクロの記録をした状態〉
Sub 書式のコピー()

Range("A2:D3").Select
Application.CutCopyMode = False
Selection.Copy
Range("A11").Select →→→→(ここの指定を色々変わる変数みたいのでどうにかしたい)
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub

分からないなりに調べて1行マクロなるものでショートカットキーを割り当てて書式のコピーをする
マクロってのを試して見たのですが・・・『該当するセルがみつかりません』とエラーが出てしまいます。
上記の1行マクロは、個人マクロブックに保存しました。
個人用マクロブックはエクセルを立ち上げると自動で立ち上がるようにはなっています。

〈1行マクロの中身〉
Sub 書式のコピー()
'Keybord shortcut: Ctrl+Shift+O
Selection.PasteSpecial Paste:=xlFormats
End Sub

どちらも色々調べて試してみたのですが、上手くいきません。
ちなみに、試しているExcelは2007です。

どうか、アドバイスをお願い致します。

質問者が選んだベストアンサー

  • 回答No.2
  • ベストアンサー

ベストアンサー率 56% (742/1315)

Visual Basic カテゴリマスター
> コピー元は、4月の見込,4月の実績の行でペースト先は黄色に塗った個所のようにしたいです

そのあたりはなんとなくわかるのですが、セル番地がコードと画像と違うようなのでこちらでは参考コードで指定のしようがないので選択したものをコピーすることにしたということです。

またコピー先が画面では4行下だけどコードだと9行下になっているのでこれも何が正解かわからないし、複数回繰り返すと書かれていて具体的に何回かわからないので、とりあえず2回下方向にコピーするものを参考に作ってみましたということです。

> コンパイルエラー:= ]
> となってしました。

Sub 書式のコピー()
同じ名前のものがあるのだと思います。適宜名前を変更してください。

エラーが出た場合、エラーメッセージを全て記載しないのは質問者さんがよくすることですが、全て記載しないとエラー内容が回答者側に適切に伝わりませんので、メッセージは全て記載するようにしてくだい。


とりあえず
A1に
6月合計
A2に
6月実績
として
B列以降は適当にデータを入れて
データを入れた範囲の1行目と2行目を選択して実行してみてください。
なお、データの無いセルを選択し実行すると型が一致しませんというエラーがでますし、選択範囲が適切かどうかは判断していません。
お礼コメント
umezou471

お礼率 100% (12/12)

補足いただきありがとうございます。
エラーについたては、

コンパイルエラー
修正候補:=

となっていました。

内容の修正の仕方を教えて頂き助かりました。
投稿日時:2014/06/22 10:52

その他の回答 (全1件)

  • 回答No.1

ベストアンサー率 56% (742/1315)

Visual Basic カテゴリマスター
画像と示されたコードとでセルの位置が違うのかいまいちよくわからないのですが

> (※筆者のやりたい事は、項目毎に毎月の集計欄を2行ずつ追加します。
> 『6月合計/6月実績』→『7月合計/7月実績』みたいに何月だけを変更して
> 書式は一緒で値はクリアにして・・と言うような事を1枚のSheet上で複数回
> 繰り返します。

どこをコピー元にしたいのか不明なのでとりあえず選択した場所を2回下に書式コピーしてみました。

Sub 書式のコピー()
Dim i As Long
Dim MyMonth As Integer

Selection.Copy

For i = Selection.Row + 2 To Selection.Row + 4 Step 2
Cells(i, "A").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
MyMonth = Val(StrConv(Left(Cells(i, "A").Offset(-1, 0).Value, 1), vbNarrow))
Cells(i, "A").Value = Month(DateAdd("m", 1, Year(Date) & "/" & MyMonth & "/" & "1")) & "月合計"
Cells(i, "A").Offset(1, 0).Value = Month(DateAdd("m", 1, Year(Date) & "/" & MyMonth & "/" & "1")) & "月実績"
Next
Application.CutCopyMode = False

End Sub
補足コメント
umezou471

お礼率 100% (12/12)

コピー元は、4月の見込,4月の実績の行でペースト先は黄色に塗った個所のようにしたいです。
投稿日時:2014/06/22 02:20
お礼コメント
umezou471

お礼率 100% (12/12)

回答1の方
ありがとうございます。

画像は、後から差し障りのないものを
適当に作り、イメージを伝えるように
添付しましたが、適切ではありませんでした。
すみません。

教えて頂いたコードをコピペしてみましたが、
[コンパイルエラー:= ]
となってしました。
また、フォローして頂けると幸いです。
教えて頂いたコードを見て勉強させていただきます。
投稿日時:2014/06/22 02:31
関連するQ&A

ピックアップ

ページ先頭へ