No.3ベストアンサー
- 回答日時:
No.1の者です。
シートを保護すると、マクロからでも変更はできないですね。
マクロで一旦シートの保護を解除して、最後に保護するでしょうか?
下記で、マクロの記録をされると、保護や解除のコードが取得できると
思いますので、マクロの最初に、解除のコードを入れて、最後に保護の
コードを入れれば対応は可能かと。
https://excel-ubara.com/excelvba1/EXCELVBA303.html
回答ありがとうございました。
おかけで、シート保護と解除のコードを入れることができました。
コンテンツを有効にすると、コピー範囲が1行減ってしまうのが気になりますが、教えていただいたURLで何とかなるかもしれません。
本当にありがとうございました。
色々と教えていただいてありがとうございました。
現在もコンテンツの有効(シートの保護)でコピー?貼り付け?範囲が1行減ってしまうのは変わりません。今は1行減ってしまう範囲に更に1行貼り付けするようにして、無理やり形にしてる状態です。
でも勉強になって良かったです。
ありがとうございました。
No.2
- 回答日時:
No.1の者です。
不足分を追加しました。
Sub コピー2()
Dim I As Long, N As Long
'B20:D列最終行をクリア
Range(Range("B20"), Cells(Cells.SpecialCells(xlCellTypeLastCell).Row, 4)).ClearContents
N = Range("C1").Value '繰り返し回数の取得
Range("B4:D19").Copy
For I = 1 To N
Range("B20").Offset(16 * I).Select
ActiveSheet.Paste
Next I
End Sub
No.1
- 回答日時:
こんばんは。
普通にコピー&ペーストで良いのでしょうか?
色々とやり方はあると思いますが、下記一例になります。
Sub コピー()
Dim I As Long, N As Long
N = 5 '繰り返し回数 任意に設定
Range("B4:D19").Copy
For I = 1 To N
Range("B20").Offset(16 * I).Select
ActiveSheet.Paste
Next I
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- Excel(エクセル) エクセル 自動計算 1 2023/01/30 13:28
- Excel(エクセル) 【VBA】エクセルで選択した範囲の値のみをクリップボードにコピーするコードについて 3 2023/03/08 17:41
- Excel(エクセル) 単価シートから単価をエクセル関数で自動取得する方法 1 2023/07/02 22:00
- Visual Basic(VBA) A列の最終行に合わせて範囲をコピー 2 2022/09/04 19:10
- Visual Basic(VBA) エクセルVBAで『A列』に新規で数値を入力し『B列』から右方向の空白セルにその値を貼り付ける方法 4 2022/11/05 08:37
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Visual Basic(VBA) 最終列の右へSUM関数を作成するため下記コードを実行しましたが、最終列「10月28日」が上書きされて 3 2022/12/05 20:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで行ごとコピー、同じ行を...
-
PDFの一部を切り取って別のシー...
-
塗りつぶしの色をコピーするには
-
【エクセル】表の中の文字だけ...
-
WORDのグレー括弧って?
-
Excel 3列毎のセルを別の表に抽...
-
C+vのvは英語で何の頭文字...
-
セルに値がある行のみを抽出す...
-
VBAのテキストボックスに文字列...
-
数式による空白を無視して最終...
-
エクセルでコピーしたものをコ...
-
EXCEL 1つ飛ばしのセル参照
-
コピー&貼り付けの仕方を教え...
-
エクセルのマクロについて教え...
-
ショートカットでのコピーと右...
-
Excel フィルターを掛けた状態...
-
Wordで文字をコピー・ペースト...
-
エクセルでマクロにてセル色と...
-
セルから一部だけを抜き出して...
-
オートフィルタ時に非表示にし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで行ごとコピー、同じ行を...
-
塗りつぶしの色をコピーするには
-
PDFの一部を切り取って別のシー...
-
【エクセル】表の中の文字だけ...
-
C+vのvは英語で何の頭文字...
-
Excel 3列毎のセルを別の表に抽...
-
WORDのグレー括弧って?
-
VBAのテキストボックスに文字列...
-
エクセルでコピーしたものをコ...
-
コピーされたセルの文字が途中...
-
セルに値がある行のみを抽出す...
-
EXCEL 1つ飛ばしのセル参照
-
Excel関数について質問ですm(__)m
-
数式による空白を無視して最終...
-
Adobe Acrobat DCのスナップシ...
-
空白行を無視してコピーするマ...
-
エクセルでマクロにてセル色と...
-
マイナスの場合「xxxx-」...
-
コピー&貼り付けの仕方を教え...
-
セルから一部だけを抜き出して...
おすすめ情報
回答ありがとうございます。
コピー&指定回数分、貼り付けできました。
ただ、シートに保護をかけると
実行時エラー'1004':
「保護されたシートに対して、このコマンドは使用できません。このコマンドを使用するに
は、シートの保護を解除してください。・・・」
とメッセージが表示されてコピー&貼り付けができません。何か解決策はないでしょうか。
よろしくお願いいたします。
ご心配ありがとうございます。
最初は保護をかけるのを忘れてたので、問題なく複写できたのですが
1回でもシートに保護をかけ実行してしまうといくら解除しても
コピー範囲の最終行(19、35、51、67、83、99・・・)のみが複写されていないです。
現在は、
Dim I As Long, N As Long の後に
ActiveSheet.Unprotect
End Sub の前に
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowInsertingRows:=True, AllowFiltering:= _
True
を追加しています。
間違ってどこか触ってしまったのでしょうか。
よろしくお願いいたします。