Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4281 / 13646 ツリー ←次へ | 前へ→

【57495】データを別のセル(最終データの下)へコピーする方法 VBA初心者 08/8/27(水) 23:35 質問[未読]
【57496】Re:データを別のセル(最終データの下)へ... かみちゃん 08/8/27(水) 23:47 発言[未読]
【57513】Re:データを別のセル(最終データの下)へ... VBA初心者 08/8/28(木) 16:08 質問[未読]
【57523】Re:データを別のセル(最終データの下)へ... かみちゃん 08/8/28(木) 22:56 発言[未読]
【57535】Re:データを別のセル(最終データの下)へ... VBA初心者 08/8/29(金) 19:54 質問[未読]
【57499】Re:データを別のセル(最終データの下)へ... Abebobo 08/8/28(木) 9:57 発言[未読]

【57495】データを別のセル(最終データの下)へコ...
質問  VBA初心者  - 08/8/27(水) 23:35 -

引用なし
パスワード
   VBA初心者です。
専門用語もよくわかりませ(^_^;)
助けて頂けると嬉しいです。よろしくお願いします。

1つのシート内の処理です。

図1

  M  N  O  P   Q  R

5 6/1 aaa  3  570 1710 SHB
6 6/3 bbb  4  220  880 PQB
7 6/29 ccc  7  100  700 RND
8
9



34
(M5:R34まで入力できる表がある)

今、M5:R7までデータが入力されており、ボタン□を押すと、以下のようになるようにしたい。

図2

  B  C  D  E   F  G

5 6/1 aaa  3  570 1710 SHB
6 6/3 bbb  4  220  880 PQB
7 6/29 ccc  7  100  700 RND
8
9



154
(B5:G154まで入力できる表)

ボタンを押して図2のようにデータをコピーする。(データは移動するのではなくコピーされるようにする)

さらに、図1のデータは、月が変わると、M5:R34内にあるデータは消して、新しいデータを入れていきます。(←この作業はマクロを使わず手作業で処理します。)

さらにM5から新規入力されたデータを、図2のデータのないセル(スペース)へ登録できるように(コピー)したいのです。

イメージ図
(図1)

  M  N  O  P   Q  R

5 7/1 ddd  4  260 1040 HKT
6 7/15 eee  9  100  900 LMP
7 
8



       ↓

(図2)

  B  C  D  E   F  G

5 6/1 aaa  3  570 1710 SHB
6 6/3 bbb  4  220  880 PQB
7 6/29 ccc  7  100  700 RND
8 7/1 ddd  4  260 1040 HKT
9 7/15 eee  9  100  900 LMP



154


教えてください。
よろしくお願いいたします。

【57496】Re:データを別のセル(最終データの下)...
発言  かみちゃん  - 08/8/27(水) 23:47 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>VBA初心者です。
>専門用語もよくわかりませ(^_^;)

であれば、「マクロの記録」はわかりますか?
これは、一般操作をマクロコードに記録してくれる機能のことです。

>ボタンを押して図2のようにデータをコピーする。

ボタンを押すことは、後回しにして、
マクロを実行すると、データがコピーされるようにするにはどうしたらいいかを
考えます。
そのためには、手作業だったらどうするかを確認します。
確認できれば、それを「マクロの記録」で記録するのです。

>さらにM5から新規入力されたデータを、図2のデータのないセル(スペース)へ登録できるように(コピー)したいのです。

これは、コピー先をどこにするかですが、これもマクロの記録である程度記録
できるのですが、
Range("B65536").End(xlUp).Offset(1)
がコピー先になります。

わからない点があれば、まずは、ご自身で「マクロの記録」で記録したコードを
提示してみましょう。

【57499】Re:データを別のセル(最終データの下)...
発言  Abebobo  - 08/8/28(木) 9:57 -

引用なし
パスワード
   ''VBA初心者さん おはようございます。
'最終行の取得の仕方が解らない ということでいいですか?
'Sub 最終行取得() がサンプルです。
'
'Rows.Count の説明マクロも書いておきます。
'エクセル2000しか知りませんが Rows.Count=65536 です。
'Sub 説明() のマクロを実行して Ctrlキーを押しながら ↑キー を
'押してください。 それをマクロの記録で取ると .End(xlUp) が出てきます。

Option Explicit

Sub 最終行取得()
Dim Last_r  As Long
 With ActiveSheet
  Last_r = .Range("B" & Rows.Count).End(xlUp).Row + 1
  .Range("B" & Last_r).Select
 End With
End Sub

Sub 説明()
 With ActiveSheet
  .Range("B" & Rows.Count).Select
 End With
End Sub

【57513】Re:データを別のセル(最終データの下)...
質問  VBA初心者  - 08/8/28(木) 16:08 -

引用なし
パスワード
   こんにちは、かみちゃんさん。
返信ありがとうございます。

マクロの記録をやってみたのですが、Offsetのところでコンパイルエラーが出てしまいます。

記録したコードです
   ↓
Sub 確定()
  Range("M5:R34").Select
  Selection.Copy
  Range("B65536").End(xlUp).Offset (1)
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Range("H6").Select
End Sub

どのようにコードを変更すればよいのでしょう?
ご教授願います。

【57523】Re:データを別のセル(最終データの下)...
発言  かみちゃん  - 08/8/28(木) 22:56 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>マクロの記録をやってみたのですが、Offsetのところでコンパイルエラーが出てしまいます。

Range("B65536").End(xlUp).Offset(1).Select
とするか、
Range("B65536").End(xlUp).Offset(1).PasteSpecial 〜
としてみてください。

【57535】Re:データを別のセル(最終データの下)...
質問  VBA初心者  - 08/8/29(金) 19:54 -

引用なし
パスワード
   かみちゃんさん。
どうもありがとうございました!できました(^_^)
もう一つ質問なのですが、コピーの範囲をM5:R34としているのですが、例えばM5:R34の中でデータの入っている範囲のみを選んでコピーすることはできるのでしょうか?今のコードでやると、コピー先の表にデータの入っていない空白のセルもコピーされてしまいます。

Sub 確定()
  Range("M5:R34").Select
  Selection.Copy
  Range("B65536").End(xlUp).Offset (1).Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Range("H6").Select
End Sub


よろしくお願いします。

4281 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free