『[マクロ] 値で貼り付け』(あたい) コピーしたセルを値で貼り付ける場合について教えて下さい。 現在使用しているマクロは元の書式を維持したまま貼り付けになっています。 ---- Dim i As Long, cnt As Long Dim name As Object For Each name In Names If name.Visible = False Then name.Visible = True End If Next For i = 2 To Sheets("リスト(2)").Cells(Rows.Count, 1).End(xlUp).Row Sheets("一般管理費").Copy After:=Sheets(Worksheets.Count) cnt = Sheets.Count Sheets(cnt).name = Sheets("リスト(2)").Cells(i, 6).Value Sheets("リスト(2)").Cells(i, 2).Copy Sheets(cnt).Range("E8") Sheets("リスト(2)").Cells(i, 6).Copy Sheets(cnt).Range("F8") Sheets("リスト(2)").Cells(i, 4).Copy Sheets(cnt).Range("I8") ---- Range.PasteSpecialを使用して値で貼り付ける場合 例えば最初のE8の場合 元の   Sheets("リスト(2)").Cells(i, 2).Copy Sheets(cnt).Range("E8") のRangeのところへ追記 Sheets("リスト(2)").Cells(i, 2).Copy Sheets(cnt).Range("E8").PasteSpecial Paste:=xlPasteValues, という書き方で良いのでしょうか。 出先でExcelが使用できない為、自分で検証していないのですが…。 考え方が違うのかどうかも含めて教えて頂けると幸いです。 宜しくお願いいたします。 < 使用 Excel:Excel2010、使用 OS:Windows7 > ---- 一度自席に戻れたので試してみましたが、 記述エラー(赤字)になりました。 文法的におかしいんですね…。 どうしたらよいのかお知恵をお貸しいただきたく!! (あたい) 2018/05/29(火) 15:45 ---- PasteSpecialにカーソルを置きF1キーを押してヘルプを確認してはどうか。 (ねむねむ) 2018/05/29(火) 15:54 ---- >どうしたらよいのかお知恵をお貸しいただきたく!! 検索して見てください。 いつ回答が得られるかわからない掲示板より時間が短縮できるかも? ↓参考URL>> http://officetanaka.net/excel/vba/cell/cell09.htm https://kosapi.com/post-2851/ (まっつわん) 2018/05/29(火) 16:09 ---- ねむねむ様 ヘルプの確認方法ありがとうございました。 まっつわん様 貼り付けて頂きましたタナカさんのところで無事解決しました! 検索はしていたのですが、検索のキーワードがへたくそだったのかもしれません。 お知恵をお借り出来て良かったです。 Sheets("リスト(2)").Cells(i, 2).Copy Sheets(cnt).Range("E8").Value でOKでした。 マクロってなかなか奥が深いですね。 ありがとうございました。 (あたい) 2018/05/29(火) 17:02 ---- > Sheets("リスト(2)").Cells(i, 2).Copy Sheets(cnt).Range("E8").Value >でOKでした。 解決したのは本当でしょうが、↑は間違えていませんか。 (マナ) 2018/05/29(火) 19:13 ---- マナさん するどいご指摘ありがとうございます。 なぜわかるのですか!ビックリです。 実は、1か所は解決したのですが、2か所は解決していません。 同じ式で3か所、値で貼り付けたかったのですが 1行目(E8)、2行目(F8)は、末尾に .valueだと何も貼り付けられなくなりました。 3行目(I8)は、値で張り付いた状態です。 ---- For i = 2 To Sheets("リスト(2)").Cells(Rows.Count, 1).End(xlUp).Row Sheets("一般管理費").Copy After:=Sheets(Worksheets.Count) cnt = Sheets.Count Sheets(cnt).name = Sheets("リスト(2)").Cells(i, 6).Value Sheets("リスト(2)").Cells(i, 2).Copy Sheets(cnt).Range("E8") Sheets("リスト(2)").Cells(i, 6).Copy Sheets(cnt).Range("F8") Sheets("リスト(2)").Cells(i, 4).Copy Sheets(cnt).Range("I8").Value ---- 自力で解決出来るかといじっていたのですが、行き詰っています。 (あたい) 2018/05/30(水) 16:38 ---- リンク先やヘルプでわかりませんでしたか? >Sheets("リスト(2)").Cells(i, 2).Copy Sheets(cnt).Range("E8").PasteSpecial Paste:=xlPasteValues, >という書き方で良いのでしょうか。 1行でなく、2行にわけて記述してください。 コピー元,Copy 貼り付け先.PasteSpecial Paste:=xlPasteValues という構文です。 '---- または、 貼り付け先.Value = コピー元,Value だと、1行です。 例えばこうです。 Sheets(cnt).Range("E8"),Value = Sheets("リスト(2)").Cells(i, 2).Value Sheets(cnt).Range("F8"),Value = Sheets("リスト(2)").Cells(i, 6).Value Sheets(cnt).Range("I8"),Value = Sheets("リスト(2)").Cells(i, 4).Value (マナ) 2018/05/30(水) 18:46