条件
EXCELのデータ
A列からL列まで
複数行(行数は、決まっていない)
(例)
40行ほどあるデータを見て
1行目から10行目までをsheet1に
12行目から20行目までをsheet2に貼り付けたい場合。
11行目のA列(空白になっている)に手入力で「a」と入力
21行目のA列(空白になっている)に手入力で「b」と入力し、
1行目から「a」のある行までをコピーし、sheet1に貼り付ける
「a」のある行より1行下から「b」のある行までをコピーし、sheet1に貼り付ける
以上のことをマクロで実行する方法を教えて下さい。
No.2ベストアンサー
- 回答日時:
マクロを覚えるには、キーボードだけでExcelを使えるようになることが大事です。
・40行のうち、途中の1行にA列が空白である行がある
・その他の行はA列~L列までデータが隙間なく入力されている
のであれば、キーボードによる操作は
1.【A1】を選択
2.Ctrl+Shift+→ (【A1:L1】が選択される)
3.Ctrl+Shift+↓ (前半部分が選択される)
4.選択範囲を右クリック-「コピー」
5.Sheet1を選択
6.貼りつけたいセルを右クリック-「貼りつけ」
7.元のシートに戻る
8.Ctrl+↓を2回 (後半部分の先頭セルが選択される)
9.Ctrl+Shift+→ (後半先頭行のA列~L列が選択される)
10.Ctrl+Shift+↓ (後半部分が選択される)
11.選択範囲を右クリック-「コピー」
12.Sheet2を選択
13.貼りつけたいセルを右クリック-「貼りつけ」
14.元のシートに戻る
15.Escを押してコピーモードを解除する
という操作になります。マクロを記録し、若干修正すると以下のようになります。
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2006/8/19 ユーザー名 : kenchandesu
'
'
Range("A1").Select '1
Range(Selection, Selection.End(xlToRight)).Select '2
Range(Selection, Selection.End(xlDown)).Select '3
Selection.Copy '4
Sheets("Sheet1").Select '5
Sheets("Sheet1").Range("貼りつけたいセル").Select '6
ActiveSheet.Paste '6
Sheets("元のシート").Select '7
Selection.End(xlDown).Select '8
Selection.End(xlDown).Select '8
Range(Selection, Selection.End(xlToRight)).Select '9
Range(Selection, Selection.End(xlDown)).Select '10
Application.CutCopyMode = False '11の副産物
Selection.Copy '11
Sheets("Sheet2").Select '12
Sheets("Sheet2").Range("貼りつけたいセル").Select '13
ActiveSheet.Paste '13
Sheets("元のシート").Select '14
Application.CutCopyMode = False '15
End Sub
途中の空白行以外のデータに空白セルがある場合、もう少し複雑な処理が必要になります。
No.4
- 回答日時:
こんにちは。
昨日から、しばらく読んでみましたが、その文章の内容では、良く分かりません。
ブック間のような気がしますが、もともと、そのデータは、どこにあるものでしょうか?それが書かれていません。
・1行目から10行目までをsheet1に
・12行目から20行目までをsheet2に貼り付けたい場合。
40行あるとしたら、残りはどうなるのでしょう?
・11行目のA列(空白になっている)に手入力で「a」と入力
手入力というのは、何を指すのか分かりません。マクロの最中に入れるのか、それとも、マクロオフで入力するか、どちらでしょう?
・1行目から「a」のある行までをコピーし、sheet1に貼り付ける
・「a」のある行より1行下から「b」のある行までをコピーし、sheet1に貼り付ける
上書きするという意味なのでしょうか?「ある行」とは何でしょうか?
ご自身の中でしか分かっていない部分が多くて、私には、今のところ、これは無理です。
No.3
- 回答日時:
「a」や「b」を手入力するなら手でコピーした方が安全なだけマシです。
> どんな行数にでも対応できるようなマクロを求めています。
これも手入力なら簡単です。(VBAでも、やりようはいくらでもあります。何が最適かはユーザーにしかわかりません。)
> 40行ほどあるデータを見て
これは例えば、「データが40行ほどあるので見てください」というようなメッセージを出すということですか?
であれば、MsgBoxで可能です。さもなければコンピュータには不可能です。
やろうとされている事は、処理は単純でも、エラー処理を含めた作り込みがキモなので、ユーザー本人にしか実用性のあるものは作れません。
そもそもサンプルの作成依頼などは、質問者のスキルアップの芽を摘んでしまうことになります。常識的な掲示板では禁止事項の筈です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBAで『A列』に新規で数値を入力し『B列』から右方向の空白セルにその値を貼り付ける方法 4 2022/11/05 08:37
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Visual Basic(VBA) VBAを使いシート間で貼り付け 3 2023/03/14 20:53
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel関数】UNIQUE関数で"0"...
-
エクセルで特定の文字列が入っ...
-
エクセル 上下で列幅を変えるには
-
エクセルのマクロで意図しない...
-
アクティブになっている行をマ...
-
excelのデータで色つき行の抽出...
-
Excel 時刻の並び替え
-
Excel グラフのプロットからデ...
-
セルの色によって条件文をつけ...
-
VBAで色の付いているセルの行削除
-
Excelでカタカナ・ひらがな・英...
-
エクセル マクロ オートフィ...
-
Excel VBA アクティブセルから...
-
Excel2007で、指定範囲の行高さ...
-
[EXCEL]ボタン押す→時刻が表に...
-
サイズの違うセル 並べ変え
-
エクセルマクロ オートSUM(合...
-
特定の文字がある行以外を削除...
-
AのセルとB行を比較して、一致...
-
電話番号の入力方式が違うデー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の文字列が入っ...
-
エクセル マクロ オートフィ...
-
【Excel関数】UNIQUE関数で"0"...
-
[EXCEL]ボタン押す→時刻が表に...
-
結合されたセルをプルダウンの...
-
エクセル マクロで数値が変っ...
-
Excel グラフのプロットからデ...
-
AのセルとB行を比較して、一致...
-
エクセル 上下で列幅を変えるには
-
Excel ウインドウ枠の固定をす...
-
特定の文字がある行以外を削除...
-
excelのデータで色つき行の抽出...
-
エクセル2016で時間を入力して...
-
excel 小さすぎて見えないセル...
-
EXCELで最後の行を固定
-
エクセルVBA 最終行を選んで並...
-
VBAで色の付いているセルの行削除
-
エクセルマクロで偶数行(又は...
-
エクセルのセルに指定画像(.jpg...
-
罫線の斜線を自動で引くマクロ
おすすめ情報