• ベストアンサー

エクセルVBAで作成できますか。

1分毎のデータが1時間分、項目別にあります。10分毎に各項目の合計を求めたい(Sheet2に合計を表示希望)のですが、どのように作成したらよいのか困っています。行数、列数はかなり増えるためVBAで作成したいです。どなたか教示よろしくお願いします。

この投稿のマルチメディアは削除されているためご覧いただけません。

質問者が選んだベストアンサー

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (454/692)
回答No.1

'こんな感じでいかが Sub sample()  Dim inTblSh As Worksheet '入力シート  Dim otTblSh As Worksheet '出力シート  Dim wkRow As Long  Dim PutRow As Long  Dim ColCout As Long    Set inTblSh = ThisWorkbook.Sheets(1)  Set otTblSh = ThisWorkbook.Sheets(2)    wkRow = 2   'データが2行目から  otTblSh.Cells.Delete '出力先クリアー    For ColCout = 1 To 4 '出力先1行目編集   otTblSh.Cells(1, ColCout).Value = inTblSh.Cells(1, ColCout).Value  Next ColCout    Do   If inTblSh.Cells(wkRow, 1).Value = "" Then Exit Sub '終了判定   PutRow = Int(inTblSh.Cells(wkRow, 1).Value / 10) + 2 '出力行番号算出      '1列目出力   otTblSh.Cells(PutRow, 1).Value = _    Format(Int(inTblSh.Cells(wkRow, 1).Value / 10) * 10, "0~") & _    Format(Int(inTblSh.Cells(wkRow, 1).Value / 10) * 10 + 9, "0")      For ColCout = 2 To 4  'データが2列目から4列目    otTblSh.Cells(PutRow, ColCout).Value = _     otTblSh.Cells(PutRow, ColCout).Value + _     inTblSh.Cells(wkRow, ColCout).Value   Next ColCout      wkRow = wkRow + 1  '行カウントアップ    Loop   End Sub

blackcat77
質問者

お礼

早速実行してみました。 希望通り作成することができました。素晴らしい!ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルのVBAでプログラムを作成中です。

    エクセルのVBAでプログラムを作成中です。 下二桁が1の項目のある列があれば、その列を別ワークシートの1番目の列に引用、 下二桁が2の項目のある列があれば、その列を別ワークシートの2番目の列に引用。。というように、 別ワークシートへ引用することができればな、と思います。 ポイントは、 下二桁を認識し、その値を列数と認識するにはどうすればよいか? ex) 101023がA1セルにあり。⇒ 下二桁が23なので、別ワークシートでは23列目。 application.worksheetfunction value vlookup 。。色々コードは思いつくのですが、そもそも見当違いなのかもしれません。 ご教示ください。

  • エクセルVBAで作成できますか(2)

    質問No.9506691に関連して添付ファイルのようなVBAを作成したい。 1:日付と時刻が同じセルで10分毎に合計を出すことはできますか。  それとも日付と時刻は別々のセルにして算出する方がいいのでしょうか。 2:抽出する項目は先に作成しておいた方がいいのでしょうか。  VBAで表示させることはできますか。 どなたかアドバイスお願いします。

  • EXCEL VBAでのアプリケーション定義エラーについて

    VBA初心者です。失礼します。 データのあるシートから別シートに、1行ずつ挿入しながらレポートを作成しようとしています。 すると、700行目までいってコピーして挿入しようとするといきなり「アプリケーション定義またはオブジェクト定義のエラーです。」と出てしまいます。 また、元データの並び替えを行うと650行目あたりで同じエラーが表示されます。 エラーの発生する値は並び替えごとに違います。 データを見ても、null値が入っているわけでもなく、他のものとなんら変わりはありません。 データの数を少なくすると最後まで問題なく処理されるのですが…。 負荷が掛かりすぎて上記のようなエラーがでるのでしょうか? しかし行数は700行ですし、列数も10列くらいしかありません…。 どうしても分からずこちらにきてしまいました。 どうぞご指導をよろしくお願いします。

  • 関数 or マクロ(エクセル)

    行の項目と列の項目を検索して重なる部分のデータを拾いたいのですがどうもうまくいきません。初歩的なことかもしれませんが、VLOOKUPとHLOOKUP関数をあわせたようなもの。LOOKUPウィザードでもやってみるのですがうまくいかないのでよろしくお願いします。(最終的にVBAでやりたいです) 元のデータは、(Sheet3)にあって(Sheet2)で項目を並べ縦と横の項目に一致するデータを持ってきたいです。 Sheet3にあるデータは、別のブックよりVBAで検索したデータを持ってきています。 また、Sheet1、2ともその都度行数(検索項目数)が変わるので、できればデータシートの行数にあわせて行きたいのですが・・・こうなるとVBAになると思い挑戦しているのですがこれがまたうまくいきません。 で、データの行数にあわせて拾い出し、A列で最終行を検索して、L列~W列の各列の3行目に、5行目~最終行までの合計を取ろうと思っています。 説明が下手ですみませんが、よろしくお願いします。 環境:Win2000、98 Office2000です。

  • Excelで、列数が違う2つの表を上下に表示させるには?

    Excelで作成した、それぞれ行数、列数が違う2つの表があります。 同じシート上に、上下に表示させたいのですが、列数が違うため、貼り付けると、 その貼り付けた方の行幅が上の表の行幅になってしまうため、壊れてしまいます。 壊れないように2つの表を表示したいのですが、どのようにしたら良いでしょうか? 上の表の列数を増やし、増やした分の線を消し、セルを結合すればできるとは思いますが、 このやり方だと、かなり時間がかかってしまいます。 簡単にできる方法はありますか?

  • エクセルVBA ピボット作成

    SUB テスト1()Sheet1("A2~F3600")のデータを新規ブックのSheet1にピボットテーブル表示させるVBA構文をご教示ください。初心者です宜しくお願いします。

  • excelでのVBAの組み方について???

    EXCELでVBAを使ってシートを作成しようと考えています。ワークシートを大量に増やす方法と、別のシートを作成し、互いにリンクをかける方法では、どちらが、使用上、また、データ量的によろしいのでしょうか。ちなみに、一つのファイルに大量のシートで組み込んだ場合、データ量が大量になるかと思いますが、ファイルを開く時など、時間的にどうなのかなと思いまして・・・。教えてください。

  • エクセルVBAの構文を教えてください。

    こんばんは。マクロ初心者です。 VBAの構文を教えてください。 ■シート(1)には項目が50ある5年分(60ヶ月)の市場統計データーがあります。50個ある項目名はB列にありDセル2008年1月からBKセル2012年12月まで横に60ヶ月分のデーターを入力しています。 ■シート(2)には50の項目名のデータがあります。項目名はB列にあります。 ■シート(3)にはコンボボックスを作成し、コンボボックスの下に表を作成しました。 シート(3)のコンボボックスの50ある項目から▼ボタンで項目を選びコマンドボタンを押すと シート(3)の下記のセル範囲でシート(1)のデーターを参照させたいのです。 B8セルからM8セルまで(2008年度12か月分のデータ) B11セルからM11セルまで(2009年度12か月分のデータ) B14セルからM14セルまで(2010年度12か月分のデータ) B17セルからM17セルまで(2011年度12か月分のデータ) B20セルからM20セルまで(2012年度12か月分のデータ) コンボボックスは設定できたのですが、構文がうまくできないため参照できていません。 エクセルVBAに詳しい方、どうぞご教授ください。よろしくお願い致します。

  • excel vba 作成について教えて下さい。

    excel VBAを使ってあるブックのセル範囲を別のブック(日報.XLS)のシートへコピー貼り付けをしたいのですが、コピーする側のブックがランダムに取り込まれ(例 8時間ピッチにて自動的にブックが作成される)そのブックを日にちごとに集計し、一か月ごとにまとめるということをやらなければなりません。 例)8時間ごとにフォルダが作成されます。   000001.XLS 000002.XLS   00000F.XLS ・・・・・・・・16進数にて   上記ブックのSheet1のA2:A11までの数値を別のブック(日報月報集計)のに貼り付ける。 別のブック(日報月報集計)は項目ごとに10個のシートがあり 8時間ごとのファイルのセルA2は別ブックのSheet1の日付けに対応するセルへ貼り付け B2は       Sheet2 上記操作を8時間ごと(可変可能)に自動的にコピー貼り付けをやりたいのですが ブック間のコピー貼り付け等わからないことが(初心者です。)多々あり、いろいろ調べてはいるのですが、STOPした状態です。 出来れば、初心者にも理解しやすい解説等あれば宜しくお願いします。

  • エクセルVBAでデータベースを作成しています。

    エクセルVBAでデータベースを作成しています。 A列には日付データが日付が古い順に上から入っています。 B列以降は出荷数や次回納品日などの付属データが入っています。 A列(日付) B列(出荷数) 7/1     10 7/15      20 7/31     5 8/2     10 8/4     25 8/23    10 8/30    20 9/2     15 9/20    21 9/30     3 出荷データを更新する度に、最終行の次の行に新しいデータが追加されます。 上記データベースは3か月分のデータだけでも行数が3万近くになるため、エクセルの 限界行数に達する前に、何か手を打ちたいのです。 例えば、予め6万行を限界行数に決めておき、データ更新する際に、データベースの限界行数までの残り行数と、追加するデータの行数を比較して、後者が大きいときには、データ、つまりデータベースの行を消去する。というマクロを組みたいと考えています。上記の例で説明すると、10月分のデータを追加しようとして限界行数に達することが分かった場合、7月に該当する行を一括して消去する。という流れです。 限界行数に達したときに、MsgBoxで「1か月分のデータを削除してよろしいですか?」→OKのときに処理を実行するという流れで行いたいのですが、何かよいアイデアがあれば教えてください。

専門家に質問してみよう