![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?a65a0e2)
No.3ベストアンサー
- 回答日時:
No.1です。
>アクティブセルの下1右5のセルを含めた8セルをカットし、
>アクティブセルの下4右2のセルでペーストさせます。
>回答頂いた中では(1)に近いです。ただ、移動するセルは複数(8個)です
というコトですので、
8個とは列方向に向かって8個
仮にActiveセルがA1だと Offset(1, 5) はF2セルになりますので、
F2~M2セルデータを Offset(4, 2) → C5セルにコピー&ペーストです。
Sub Sample1()
With ActiveCell
.Offset(1, 5).Resize(, 8).Cut .Offset(4, 2)
End With
End Sub
こんな感じではどうでしょうか?m(_ _)m
ありがとうございます。
・Resizeの使用
・destinationは不要
ということですね。次回これで試してみます。
質問の後で、結局とった対策は、
activecell.offset(1,5).range("A1:F1").select
selection.cut destination:=activecell.offset(省略)
一旦セレクトしておいて、次にカット&ペーストするとなぜか動きました。
No.4
- 回答日時:
#2の回答者です。
>destination:=の有無になりますが、無くても出来るのですね。
なぜ、省いたかというと、画面上で、右に長くなりすぎるので、桁折したのですが、その時に、Destination:= が入っていると、今回の場合、エラーになることがあるからです。
>カットアンドペースト以外の方法はあるのでしょうか?配列に読み込んでから移動先セルに書き込むのですか?
VBAのコーディングで、普通は、必要な箇所をコピーして、張り付けした後に、不要な部分を削除するという方法を取ります。もちろん、配列という方法があることにはあるのですが、それは、私としては、やむを得ない場合に限ります。ここでは、配列による、Value(または、Text)値だけのコピーというのをあえてする必要性はないと思います。
なお、#2のコードで、飛び飛びにする場合は、For i= 1 To 最終数 Step 2
となどに書き加えます。
No.2
- 回答日時:
こんにちは。
ご質問のマクロは、記録マクロからですね。
それも、「相対参照」になっていますから、意図的でなければ、設定を、「絶対参照」にして記録してください。それと、Cut & Paste マクロは、Excelのバージョンによっては、理由なくエラーが出ることがあります。ですから、長年、VBAを書いている人は、Cut & Pasteのコードは滅多に書きません。
ただ、
>うろ覚えですが「○○定義エラー」
質問では、うろ覚えではなく、正確なエラーの内容を書いてください。再現性があるのかないのかの判定もします。再現性のない場合は、ご自身の、Excelのワークシートの環境的な問題だと思ってください。
今回の質問は、Excelのバージョンなど示されていませんので、今のところ再現性は確認できません。
ActiveCell.Offset(1,5).Range("A1:H1")
という表記の仕方は、見慣れない方もいるようですが、これは記録マクロの相対参照モードにしか登場しないコードです。
これは、問題ないといえば問題ないのですが、貼り付け先が実際にはないところにもマクロを実行しようとしてしまいます。その場合は、エラーはあるはずです。
後は、ちゃんとVBAを段階的に学習つもりがあるのでしたら、別の回答にもなりますが、手っ取り早く解決したいのでしたら、記録マクロを質問で公開するよりも、どのようにしたいのか、きちんと言葉で説明されたほうがよいと思います。ここの回答者さんが、あらためてコードを書いてくれるはずです。
例えば、アクティブセルが、A1にあるとして、10行続けようとすれば、このようにはなりますが、ここでも、どこを基点にするかというものが、重要になってきます。
'//
Sub Test1()
Dim i As Long
For i = 1 To 10
Cells(i, 1).Select '←ここが基点(最初はA1)
ActiveCell.Offset(1, 5).Range("A1:H1").Cut _
ActiveCell.Offset(4, 2).Range("A1")
Next i
End Sub
'//
これを、標準モジュールに書くようにします。
ありがとうございます。
同じ処理を大量に繰り返すため(10回×100回×200回)、相対参照で記録しました。回答頂いたソースコードではiを使って基準点を移動しますが、自動マクロで作った時は1個のプロシージャの最終行で基準点移動し、このプロシージャを繰り返すようにしてます。
回答のソースコードと質問文の最大の違いはdestination:=の有無になりますが、無くても出来るのですね。私自身、カットアンドペーストをマクロで作るのは初めてで、最初は自動マクロで作り、動作時間短縮のためネットで検索して変更しました。
カットアンドペースト以外の方法はあるのでしょうか?配列に読み込んでから移動先セルに書き込むのですか?
No.1
- 回答日時:
こんにちは!
両辺とも「主語」がダブっていて、どういったコトをしたいのか見えてこないのですが・・・
(1)選択セルから1行下・5列右側セルを選択セルの4行下・2列右側セルにカット&ペーストしたい場合
With ActiveCell
.Offset(1, 5).Cut .Offset(4, 2)
End With
(2)A1~H1セルを選択セルから4行下・2列右側セルにカット&ペーストしたい場合
Range("A1:H1").Cut ActiveCell.Offset(4, 2)
(3)A1~H1セルをA1セルの4行下・2列右側セルにカット&ペーストしたい場合
Range("A1:H1").Cut Range("A1").Offset(4, 2)
といった感じになりますが、
いずれにしても左辺の「主語」は
ActiveCell.Offset(1, 5) なのか Range("A1:H1") なのか?
右辺の「主語」は
ActiveCell.Offset(4, 2) なのか Range ("A1") なのか?
ひとつに決めてやらないとエラーとなります。m(_ _)m
ありがとうございます。
アクティブセルの下1右5のセルを含めた8セルをカットし、アクティブセルの下4右2のセルでペーストさせます。回答頂いた中では(1)に近いです。ただ、移動するセルは複数(8個)です。
当初自動マクロで作りましたが、修正したら動かなくなったというのが背景です。
ActiveCell.Offset(1, 5).Range("A1:H1").select
selection.cut
activecell.offset(3,-3).Range("A1").Paste
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Visual Basic(VBA) いつもお世話になります 下記のコード実行すると エラーになります わかるかた教えてくれませんでしょう 6 2022/12/17 15:01
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
- Excel(エクセル) VBAのoffsetの動き方について教えてください 3 2022/11/25 23:36
- Excel(エクセル) 【VBA】A列にある連続したデータの1番下に文字列を入力したい 1 2023/01/28 04:40
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Excel(エクセル) エクセル VBAの構文について 2 2023/02/10 18:26
- Visual Basic(VBA) Excelのマクロ ブック間である範囲をコピー Workbooks(“a.xlsx“).Sheets 3 2022/05/12 17:02
- Visual Basic(VBA) エクセルのマクロとシートの保護について教えてください。 1 2022/10/18 08:36
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
みんなの【マイ・ベスト積読2024】を教えてください。
積読、ついついしちゃいませんか?そこでみなさんの 「2024年に買ったベスト積読」を聞きたいです。
-
テレビやラジオに出たことがある人、いますか?
テレビやラジオに取材されたり、ゲスト出演したことある方いますか?
-
【お題】斜め上を行くスキー場にありがちなこと
運営も客も一流を通り越して斜め上を行くスキー場にありがちなことを教えて下さい。
-
図の圧縮で「解像度の選択」ができません
その他(Microsoft Office)
-
エクセルで数式の答えを数値として参照したい
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
貼り付けで複数セルに貼り付けたい
-
excelの特定のセルの隣のセル指...
-
【Excel】 セルの色での判断は...
-
EXCEL VBA セルに既に入...
-
(Excel)数字記入セルの数値の後...
-
枠に収まらない文字を非表示に...
-
エクセルの一つのセルに複数の...
-
エクセルの書式設定の表示形式...
-
エクセルのセルの枠を超えて文...
-
【エクセル】IF関数 Aまたは...
-
エクセル オートフィルタで絞...
-
数式を残したまま、別のセルに...
-
Excelでのコメント表示位置
-
エクセル “13ヶ月”を“1年1ヶ月...
-
セルをクリック⇒そのセルに入力...
-
Excelで数式内の文字色を一部だ...
-
対象セル内(複数)が埋まった...
-
VBAでセルを指定した画像のコピ...
-
ハイパーリンクの参照セルのズ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
貼り付けで複数セルに貼り付けたい
-
エクセルで指定したセルのどれ...
-
excelの特定のセルの隣のセル指...
-
(Excel)数字記入セルの数値の後...
-
セルをクリック⇒そのセルに入力...
-
枠に収まらない文字を非表示に...
-
【エクセル】IF関数 Aまたは...
-
【Excel】 セルの色での判断は...
-
Excelでのコメント表示位置
-
エクセルの一つのセルに複数の...
-
エクセルのセルの枠を超えて文...
-
Excelで数式内の文字色を一部だ...
-
EXCEL VBA セルに既に入...
-
エクセルの書式設定の表示形式...
-
Excel 例A(1+9) のように番地の...
-
数式を残したまま、別のセルに...
-
エクセル オートフィルタで絞...
-
Excelで、「特定のセル」に入力...
-
ハイパーリンクの参照セルのズ...
-
対象セル内(複数)が埋まった...
おすすめ情報