• 締切済み

現在値と時系列データをマクロで作りたい

エクセル2010をウインドウズ7にて使用しています。 グラフを作る元データを形成するために自分なりにマクロ式を作ってみましたが、 うまくいかず困っています。 そこで、以下の内容を満たすマクロ式をぜひ例示していただけないでしょうか。 当方マクロには疎いため、エクセルにコピペすれば動作する式を例示いただければ大変助かります。 1.実現したいこと ○刻々と変化する数字データを一定時間ごとの時系列に固定化・記録したい ○現在の時間帯に相当するセルにはリアルタイムデータを表示する 2.説明 添付の画像をもとに説明します B列には、他のワークシートから参照したリアルタイムデータが入っています。 (「=別のシート!A2」という感じです) なおB列にある各行は、それぞれ別のセルから引用した個別のデータです。 それらのデータを、C列以降に30分ごとの区切りで記録していくとともに、 現在時間にあたる列(たとえば10:15であればE列)には、 「=B2」のように現在のリアルタイムデータを表示させたいのです。 つまり、現在データは現在の時間帯のセルに表示させつつ、 一定時間ごとで区切った過去の時系列データも記録したいということです。 その時系列データ・現在データをもとにグラフを作成することを考えています。 (具体的には、「スパークライン」の作成) 自分でマクロを作成してみたときの流れは以下のような感じです 09:00直前の処理 1.C2に「=B2」を入力 2.C2を下へドラッグし、C3以下にB2同様に=B3、=B4・・と連続データを作成 09:30の処理 1.C2以下のデータをコピーし、C列に「値として貼り付け」を行うことで終値を固定データ化する 2.D2に「=B2」を入力 3.D2を下へドラッグし、D3以下にD2同様に=B3、=B4・・と連続データを作成 10:00の処理 1.D2以下のデータをコピーし、D列に「値として貼り付け」を行うことで終値を固定データ化する 2.E2に「=B2」を入力 3.E2を下へドラッグし、E3以下にE2同様に=B3、=B4・・と連続データを作成 同様の処理を30分ごとにO列まで繰り返す 以上です。 できれば一つのマクロで完結するような計算式だとありがたいです。 わかりにくい点がありましたらご指摘ください。 よろしくお願いいたします。

みんなの回答

noname#192382
noname#192382
回答No.1

下記のマクロをコピーペーストしてください。このマクロは B列の最終行を6にしていますので、適宜変更してください。 データ採取間隔はkankの定数として指定することにしていますのでプログラムの中で指定してください。 またカラム数もmaxkazuとして指定することにしていますのでプログラムの中で指定してください。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2012/5/13 ユーザー名 : ' Dim d As Variant, mycol As Integer, myrange As Range, strtd As Variant, kank As Variant, maxkazu As Variant strtd = Hour(Time) * 60 + Minute(Time) 'kankaku kank = 1 'column kazu maxkazu = 5 Do d = Hour(Time) * 60 + Minute(Time) - strtd mycol = Int(d / kank) + 3 'MsgBox (d) 'MsgBox (mycol) Cells(2, mycol) = Time Range(Cells(3, mycol), Cells(6, mycol)).Value = Range(Cells(3, 2), Cells(6, 2)).Value Loop While mycol < maxkazu ' End Sub

moon160
質問者

お礼

回答ありがとうございます。 これから対象のエクセルシートに組み込んで動作させます。 取り急ぎお礼まで。

関連するQ&A

  • 複数列にあるデータのグラフの処理に困っています。

    以下のデータの処理で困っています A  B C D E : : : : : : : : : : : : : : : 10a 10b 10c 10d 10e というように一つの列にいくつもプロットされた数字があり、10a→B→10b→C...というようにして1本の曲線にしたいのですがうまくいきません。A列に全部コピーするという手もありますが今後も同様の処理をする羽目になるので何かいい手はないものか考えています。別の方も同じ質問をされていたのですがマクロを使うやり方であって、マクロを知らない私としてはそれ以外の手を捜しています。一つの系列に入れようとしてますが「=収集!$A$1:$A$10a+$B$1:$B$10b....」としてみましたがエラーばかりです。よろしくお願いします。

  • EXCELのマクロで困ってます。

    EXCELのマクロで困ってます。 今EXCELでデータを処理しているのですが、 データが膨大にあり、処理するのにすごく時間がかかっています。 そこでマクロで何とかできないかと思っています。 EXCELに詳しい方のマクロ作成方法について教えてください。 質問内容は 画像の まずはB列の:の後ろにC列、D列、E列の文字を挿入し、それを次の列、次の列と進めていきたいのですが 可能でしょうか? それに開始ボタンと終了ボタンを作って 3人で作業したいと思っています。(後の二人はあまりマクロを知らないので簡単に動作させたい) コピペでは間に合わなく、ホントに困ってます。 よろしくお願いいたします。

  • エクセルのマクロでデータを左につめていく

    お世話になります。エクセル2002でマクロを作成しようと思っています。 毎回同じ処理をしているので、良いサンプルがあったら教えてください。 やりたいこと  A列からF列にランダムにデータが入力されています。  このデータをA列、B列、C列と、左に詰め表示させたいです。  ※G列以降にもデータが入力されていますが、処理したい列範囲はA列~F列です。  ※行数は、都度変わります。(UsedRange.Rows.Countで値を取得) イメージ(処理前)  -  : 空白セル  *** : データが入力されているセル     A列   B列  C列  D列  E列   F列 1行目 項目1 項目2 項目3 項目4 項目5 項目6 2行目 ***  ***  -   ***  *** - 3行目 - -   -  *** *** *** 4行目 ***  -   -   -   -   -  5行目 *** *** -   *** -   -  イメージ(処理後)     A列  B列  C列   D列  E列  F列 1行目 項目1 項目2 項目3 項目4 項目5 項目6 2行目 ***  ***  -   ***  *** - 3行目 *** *** *** - -   - 4行目 ***  -   -   -   -   -  5行目 *** *** *** -   -  -

  • excelのグラフ作成をマクロで

    excelのデータが多くてマクロで手っ取り早く処理したいのですが、どうすればよいのでしょうか? 初心者なもので。。。 A列をx軸にしてB列~P列をy軸にします。 1枚目がAとBでグラフを作成し、続いて2枚目としてAとCでグラフ作成し、同様にD・E・F・・・って作成したいです。 グラフは新しいシートを作成していきたいです。(計15枚だと思います。) で、そのシートの名前もつけたいです。 で、書式設定もマクロ上できたらうれしいです。 できないでしょうか? よろしくお願いします。

  • Excel エクセル 2003 セル内のデータ移動 マクロ?

    データはE6からE297まであります。 E7のデータをD6へ、E9のデータをD8へ下に、これを最後まで行いたいのです。 ドラッグアンドドロップや切り取り、貼り付け(ショートカット)では時間がかかるので何かいい方法はありませんでしょうか?(マクロなのかな?) また、E列だけでなく他の列(任意)へ移動したときや、E17などのように任意から始まるときなど、そしてEデータが297ではなくもっと増えたときなどの対応などをあわせてお教えいただくとうれしいです。 よろしくお願いします。

  • マクロでグラフのデーター範囲の変更

    すみません、シート1に埋め込みグラフが3つあります。それぞれ系列1、2、3とデーター範囲が設定されています。それで「項目軸ラベルに使用」にもデータ範囲が設定されています。 その、データー範囲をセルの最終行まで変更するマクロを作ろうと思っているのですが、うまくいかないので誰か教えて頂けませんでしょうか? 下記の様に各列の下にデータが入っています。更にその下にデータが追加されていくのですが、 それに伴ってデーター範囲も変更したいのですが何か良い方法を教えて下さい。 SetSourceDataとかで挑戦しようとしたのですが、各系列をどのように指定してよいのか分からず困ってしまいました。 どうか宜しくお願いします。  A列(項目軸ラベル) B列(系列1) C列(系列2) D列(系列3) =グラフ1    E列(項目軸ラベル) F列(系列1) G列(系列2) H列(系列3) =グラフ2  I列(項目軸ラベル) J列(系列1) K列(系列2) L列(系列3) =グラフ3

  • ある列のリアルタイム数値を3分毎に列をずらしながら記録するEXCELマクロを作りたい

    EXECL2002 SP3を使っています。 B2からB99まで数式が入力されています。 この数式の結果はリアルタイムで変わります。 このリアルタイムデータを、 記録するマクロを作成したいと考えています。 9時1分から20時1分まで3分毎にデータを取得し、 C列、D列、E列、と列をずらしながら記録していきます。 以下のようなイメージになります。 ☆数式の状態     A   B 1        =now 2    東京  =tokyo.temperature 3    千葉  =kanagawa.temperature 4    埼玉  =saitama.temperature ☆9時1分のシートの状態     A   B   C 1        9:01  9:01 2    東京  11.5  11.5 3    千葉  11.9  11.9 4    埼玉  10.8  10.8 ☆9時4分のシートの状態     A   B   C   D 1        9:04  9:01  9:04 2    東京  11.6  11.5  11.6 3    千葉  12.1  11.9  12.1 4    埼玉  11.0  10.8  11.0 ☆9時7分のシートの状態     A   B   C   D   E 1        9:07  9:01  9:04  9:07 2    東京  11.8  11.5  11.6  11.8 3    千葉  12.4  11.9  12.1  12.4 4    埼玉  11.1  10.8  11.0  11.1 上記の作業を実現できるマクロを 教えていただけませんでしょうか。 よろしくお願いいたします。

  • Excel 重複データの番号を抽出

    Excel:Office2003 OS:WindowsXP excelのデータで A列 B列 1 A 2 B 3 A 4 C 5 D 6 A 7 A 8 B 9 B 10 C 以上のように並んでいるデータを以下の E列 F列 G列 H列 I列 A 1 3 6 7 B 2 8 9 C 4 10 D 5 ようにしたい場合はどのようにしたらいいのか教えてください。 マクロではなく関数で処理をしたいと思っています。 よろしくお願いします。

  • エクセルのマクロ

    A列とB列に以下のような感じでデータが入ってます。 A列 A1  1 A2  あ A3  い A4  う A5  え A6  2 A7  お A8  か A9  3 A10  さ A11  し A11  す B列 B1   1 B2   a B2  2 B3  b B4  c B5  3 B6  d B7  e 両列に共通しているのは数字の1から始まり、1の後に何らかのデータが続いた後に2がきて、また何らかのデータが続いた後に3がきます。 そんな感じで数値が増えて両列とも500(行ではなく数値が)まであります。 この二つの列のデータを合わせたものをC列に表したいのですが。 その規則ですが。まず1がきて、その後にB列の1から下のデータ(2の前まで)がきて、次にA列の1から下のデータ(2の前まで)がきます。2以下も同様になります。 C1  1 C2  a C3  あ C4  い C5  う C6  え C7  2 C8  b C9  c C10  お C11  か C12  3 C13  d C14  e C15  さ C16  し C17  す C列のデータを求めるマクロを教えてもらいたいのですが。 よろしくお願いします。

  • COUNTBLANKのような役割を持つマクロ

    COUNTBLANKとはちょっと違うのですが、 行 ↓ A B C D ←列 1  AB AC AD AA 2 BB 3 C CC 4 DD 上記のようなデータがあります。 2,4行目みたいにA列とB列とC列が空白だったら、E2、E4セルに ○っていのを表示させるようなマクロってできないでしょうか。 また、Dのセルに値がある限り、その行数分上記の処理を繰り返す 方法があったら教えてください

専門家に質問してみよう