プロが教えるわが家の防犯対策術!

条件
EXCELのデータ
A列からL列まで
複数行(行数は、決まっていない)
(例)
40行ほどあるデータを見て
1行目から10行目までをsheet1に
12行目から20行目までをsheet2に貼り付けたい場合。

11行目のA列(空白になっている)に手入力で「a」と入力
21行目のA列(空白になっている)に手入力で「b」と入力し、
1行目から「a」のある行までをコピーし、sheet1に貼り付ける
「a」のある行より1行下から「b」のある行までをコピーし、sheet1に貼り付ける
以上のことをマクロで実行する方法を教えて下さい。

A 回答 (4件)

マクロを覚えるには、キーボードだけで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

途中の空白行以外のデータに空白セルがある場合、もう少し複雑な処理が必要になります。
    • good
    • 0
この回答へのお礼

連絡が遅くなりました。
キーボードによる操作からマクロを記録してみると、
うまくいきました。
ありがとうございました!

お礼日時:2006/09/01 17:39

こんにちは。



昨日から、しばらく読んでみましたが、その文章の内容では、良く分かりません。

ブック間のような気がしますが、もともと、そのデータは、どこにあるものでしょうか?それが書かれていません。

・1行目から10行目までをsheet1に
・12行目から20行目までをsheet2に貼り付けたい場合。

40行あるとしたら、残りはどうなるのでしょう?

・11行目のA列(空白になっている)に手入力で「a」と入力

手入力というのは、何を指すのか分かりません。マクロの最中に入れるのか、それとも、マクロオフで入力するか、どちらでしょう?

・1行目から「a」のある行までをコピーし、sheet1に貼り付ける
・「a」のある行より1行下から「b」のある行までをコピーし、sheet1に貼り付ける

上書きするという意味なのでしょうか?「ある行」とは何でしょうか?

ご自身の中でしか分かっていない部分が多くて、私には、今のところ、これは無理です。
    • good
    • 0
この回答へのお礼

説明がへたですみませんでした。
ご迷惑をおかけしました。
No.2の方の説明でうまくいきました。

お礼日時:2006/09/01 17:42

「a」や「b」を手入力するなら手でコピーした方が安全なだけマシです。



> どんな行数にでも対応できるようなマクロを求めています。
これも手入力なら簡単です。(VBAでも、やりようはいくらでもあります。何が最適かはユーザーにしかわかりません。)

> 40行ほどあるデータを見て
これは例えば、「データが40行ほどあるので見てください」というようなメッセージを出すということですか?
であれば、MsgBoxで可能です。さもなければコンピュータには不可能です。

やろうとされている事は、処理は単純でも、エラー処理を含めた作り込みがキモなので、ユーザー本人にしか実用性のあるものは作れません。
そもそもサンプルの作成依頼などは、質問者のスキルアップの芽を摘んでしまうことになります。常識的な掲示板では禁止事項の筈です。
    • good
    • 0

これだけやることがはっきりしているなら


「マクロの記録」で
そのものズバリが出来そうですが。

出来てしまえば
「マクロの実行」で実行できますし、
自作ツールバーに登録することもできます。

この回答への補足

1行目から10行目までをsheet1に
12行目から20行目までをsheet2に貼り付けたい場合
と書きましたが、
10行目、20行目というのは例であって、データによって行数が違ってきます。どんな行数にでも対応できるようなマクロを求めています。

補足日時:2006/08/18 23:08
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!