Excel VBA質問箱 IV

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

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


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

【23645】[無題] Kawaguti Motoichi 05/4/1(金) 0:08 質問[未読]
【23646】Re:[無題] りすりす 05/4/1(金) 0:39 発言[未読]
【23649】Re:[無題] Kawaguti Motoichi 05/4/1(金) 9:46 質問[未読]
【23696】Re:[無題] ponpon 05/4/1(金) 23:29 回答[未読]
【23728】Re:[無題] Kawaguti Motoichi 05/4/2(土) 19:08 お礼[未読]
【23730】Re:[無題] ponpon 05/4/2(土) 22:11 発言[未読]
【23733】Re:Range("A65536") かみちゃん 05/4/2(土) 23:07 発言[未読]
【23736】Re:Range("A65536") ponpon 05/4/3(日) 0:39 お礼[未読]
【23762】Re:Range("A65536") Kawaguchi  Motoichi 05/4/3(日) 15:36 お礼[未読]

【23645】[無題]
質問  Kawaguti Motoichi E-MAIL  - 05/4/1(金) 0:08 -

引用なし
パスワード
   毎日更新するデータを、あらかじめ別に出来ている、日毎に集計する表の該当日にちに記入できるようにしたいのだが?

【23646】Re:[無題]
発言  りすりす  - 05/4/1(金) 0:39 -

引用なし
パスワード
   ▼Kawaguti Motoichi さん:
>毎日更新するデータを、あらかじめ別に出来ている、日毎に集計する表の該当日にちに記入できるようにしたいのだが?

やりたいことは、わかるのですが、

どういうシートのどこの行列から
どこのシートのどこの行列あたりにデータを自動でうつしたいのか

はっきりかかないと
ワークブックの構造がわからないので
誰も質問を読んでも答えは、わかりません

【23649】Re:[無題]
質問  Kawaguti Motoichi E-MAIL  - 05/4/1(金) 9:46 -

引用なし
パスワード
   早速の反応ありがとうございます。説明が稚拙で申し訳ありません
あらためて説明してみます。
<Sheet1>の例えば、A1,B1,C1セルに毎日データを更新します
それらのデータを、別<Sheet2>のあらかじめ作られた表に、一日目は一番上の空白の行に、<Sheet1>のA1データをA1に、B1はB1に・・・・貼り付ける。そして翌日更新された新たな<Sheet1>のA1のデータは、今度は前日の一段下の行のA2に貼り付ける、同じようにB1のデータはB2に・・・・・と、日毎繰り返して一ヶ月のデータ集計表を作成したいのですが?
▼りすりす さん:
>▼Kawaguti Motoichi さん:
>>毎日更新するデータを、あらかじめ別に出来ている、日毎に集計する表の該当日にちに記入できるようにしたいのだが?
>
>やりたいことは、わかるのですが、
>
>どういうシートのどこの行列から
>どこのシートのどこの行列あたりにデータを自動でうつしたいのか
>
>はっきりかかないと
>ワークブックの構造がわからないので
>誰も質問を読んでも答えは、わかりません

【23696】Re:[無題]
回答  ponpon  - 05/4/1(金) 23:29 -

引用なし
パスワード
   ▼Kawaguti Motoichi さん:
ponponです。こんばんは。

>>>毎日更新するデータを、あらかじめ別に出来ている、日毎に集計する表の該当日にちに記入できるようにしたいのだが?

くわしいシートレイアウトがわからないので、
sheet1は、一行目のA1に「商品」B1に「値段」C1に「個数」の見出しがあり、入力データは、2行目とします。
sheet2は、一行目のA1に「日付」B1に「商品」C1に「値段」D1に「個数」の見出しがあるものとします。
 実行は、フォームのコマンドボタンあたりでやってください。
 意味が違っていたらごめんなさい。

Sub test()
  
  Dim myVal As Variant
  Dim myRng As Range
  myVal = Worksheets("sheet1").Range("A2:C2").Value
  
  With Worksheets("sheet2")
     Set myRng = .Range("A65536").End(xlUp).Offset(1, 0)
     myRng.Value = DateValue(Now)
     myRng.Offset(0, 1).Resize(1, 3) = myVal
  End With

End Sub

【23728】Re:[無題]
お礼  Kawaguti Motoichi E-MAIL  - 05/4/2(土) 19:08 -

引用なし
パスワード
   ▼ponpon さん:
>▼Kawaguti Motoichi さん:
>ponponです。こんばんは。
>
>>>>毎日更新するデータを、あらかじめ別に出来ている、日毎に集計する表の該当日にちに記入できるようにしたいのだが?
>
>くわしいシートレイアウトがわからないので、
>sheet1は、一行目のA1に「商品」B1に「値段」C1に「個数」の見出しがあり、入力データは、2行目とします。
>sheet2は、一行目のA1に「日付」B1に「商品」C1に「値段」D1に「個数」の見出しがあるものとします。
> 実行は、フォームのコマンドボタンあたりでやってください。
> 意味が違っていたらごめんなさい。
>
>Sub test()
>  
>  Dim myVal As Variant
>  Dim myRng As Range
>  myVal = Worksheets("sheet1").Range("A2:C2").Value
>  
>  With Worksheets("sheet2")
>     Set myRng = .Range("A65536").End(xlUp).Offset(1, 0)
>     myRng.Value = DateValue(Now)
>     myRng.Offset(0, 1).Resize(1, 3) = myVal
>  End With
>
>End Sub
PonPonさんありがとうございます。
早速実行してみました。OKでした。
実は私が現在苦慮している集計は、実はもっと複雑で、まず日々更新するデータがSheet1の中で点在していて、しかも12項目あります。それらをSheet2の一行にまとめたいのです。ponponさんのを参考にして考えてみたいとおもいます。
ところで、そんなことも知らないのかと言われそうですが、Range("A65536")てなんですか調べてみたいと思いますが・・・
本当に有難うございました。

【23730】Re:[無題]
発言  ponpon  - 05/4/2(土) 22:11 -

引用なし
パスワード
   ponponです。こんばんは。

>Range("A65536")てなんですか
エクセルのA列の最終行です。(エクセル2000以降の)だったかな?
Cells(Rows.Count,1)と同じです。

A列のデータの入っているセルを探すために
Range("A1").End(xldown)とするとわかるのですが、空欄があるとそこで止まってしまいます。そこで、最終行(65536行)から上に(xlup)検索して、データの入っている最終行を求める ということです。だったと思います。
 詳しくは「End」でヘルプを見て頂くか、「Range("A65536")」や「End」でここの掲示板を検索するとわかると思います。私も最近「65536」と覚えられました。
 それと質問する場合は、質問の内容がわかるような見出しにした方が良いと思います。
ではでは。。。

【23733】Re:Range("A65536")
発言  かみちゃん  - 05/4/2(土) 23:07 -

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

>>Range("A65536")てなんですか
>エクセルのA列の最終行です。(エクセル2000以降の)だったかな?
>Cells(Rows.Count,1)と同じです。

少し勘違いされるといけませんので、補足させてください。
Range("A1")は、A1セルのことです。
Range("A65536")は、A65536セルのことです。
つまり、Rangeは、セル範囲を指します。決して最終行をさすものではありません。

また、最大行は、Excel97〜Excl2003までは、65536行です。
それ以前のExcel5.0やExcel95は、16384行でした。
さらに、次期バージョンの最終行が65536行である保証はどこにもないので、次の
ようにするとバージョンの違いも吸収できるのではないでしょうか?
Cells(ActiveSheet.Rows.Count, 1)
Excel97〜Excel2003の場合、Range("A65536")と同じになります。

【23736】Re:Range("A65536")
お礼  ponpon  - 05/4/3(日) 0:39 -

引用なし
パスワード
   ponponです。
ありがとうございました。
また一つ脱初心者です。

【23762】Re:Range("A65536")
お礼  Kawaguchi  Motoichi  - 05/4/3(日) 15:36 -

引用なし
パスワード
   回答して頂いた方全てにお礼申し上げます。
ありがとうございました。

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