A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんにちは。
>教えて頂いたコードで、出来るような雰囲気なのですが
まず、基本的な私の書き込みスタイルは、質問者のリクエストがない限りは、データを削除したり、壊したり、上書きしたりしないようにしています。もちろん、今のままでも使えますが、
>・新しいデータ(301番目)が入ってきたら、1番目のデータから消していきたいです。
こちらの条件には合いません。つまり、不必要な行を削除するようにするのだと思います。ただ、グラフのデータの範囲自体などは示されていませんので、系列は5個で、「回答に対する補足」部分から、データの範囲は、「C18:G317」までの範囲だと解釈させていただきます。もしも、データが300以下の場合は、グラフのみの、設定のしなおしをします。
'<標準モジュール>
Sub TestChart2()
Dim LastRow As Long, FirstRow As Long
Dim myAddress As String, i As Long
With ActiveSheet
'ここにWebデータの貼り付けのコードを入れる
LastRow = .Range("C65536").End(xlUp).Row
'本来の最初の行
FirstRow = Application.Max(LastRow - 299, 1)
If LastRow > 317 Then
'不要の部分を削除してB18まで戻す
Range("B18", "G" & FirstRow - 1).Delete xlShiftUp
LastRow = .Range("C65536").End(xlUp).Row
End If
For i = 1 To 5
'グラフ系列用のアドレスの取得
myAddress = Range(.Cells(18, i + 2), _
.Cells(LastRow, i + 2)).Address
.ChartObjects(1).Chart.SeriesCollection(i).Formula = _
"=SERIES(,," & .Name & "!" & myAddress & ",1)"
Next i
End With
End Sub
No.2
- 回答日時:
基本的なことですが、Web クエリで出したものを、同じシートで加工するのですか?
それから、「縦の数値を横に変えて貼り付け」のマクロだけですが、他のことは何も分からないので、こちらの想像で作ってみました。
'最初の行は、最後から300行さかのぼったところ。ただし、300行に達しない場合は、それ以下にする。
Sub TestChart()
Dim LastRow As Long, FirstRow As Long
Dim myAddress As String, i As Long
With ActiveSheet
LastRow = .Range("C65536").End(xlUp).Row
FirstRow = Application.Max(LastRow - 300, 1)
For i = 1 To 5
myAddress = Range(.Cells(FirstRow, i + 2), _
.Cells(LastRow, i + 2)).Address
.ChartObjects(1).Chart.SeriesCollection(i).Formula = _
"=SERIES(,," & .Name & "!" & myAddress & ",1)"
Next i
End With
End Sub
この回答への補足
回答ありがとうございます。
>基本的なことですが、Web クエリで出したものを、同じシートで加工するのですか?
同じシートで加工しています。
>それから、「縦の数値を横に変えて貼り付け」のマクロだけですが、他のことは何も分からないので、こちらの想像で作ってみました。
補足
グラフは、元データ自体の幅を縦300行に設定してあるので、Webクエリから最後の行にデータが追加されたらグラフが動いていく状況です。
私の 教えて の内容は
・300のデータ数のグラフを作成したい。
・新しいデータ(301番目)が入ってきたら、1番目のデータから消していきたい
です。
イメージが掴めたでしょうか?
教えて頂いたコードで、出来るような雰囲気なのですが
上に記述したイメージのコードに適しているでしょうか?
No.1
- 回答日時:
グラフ幅という意味が良く分かりませんが、データの増加で、そのデータを取捨していくなら、
例えば、
ActiveChart.SeriesCollection(1).XValues
ActiveChart.SeriesCollection(1).Values
で、データ範囲のアドレスを、R1C1型に取って入れればよいのではありませんか?
例えば、
LastRow = Range("B65536").End(xlUp).Row
FirstRow = Application.Max(LastRow - 20, 1)
myAddress = Range(Cells(FirstRow, 2), Cells(LastRow, 2)).Address(, , xlR1C1)
もし、私の話で見えてこないようでしたら、一度、お使いのコードを表示して、具体的に説明してください。
この回答への補足
こんにちわ
’縦の数値を横に変えて貼り付け
Range("B18:B22").Select
Selection.Copy
Range("c65536").End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
このようなコードです。
5つのデータをグラフ化して推移させている状態です。
グラフのデータは300くらいまでを見ています。
300以上のデータは、古い順から切り捨てていきたいと考えています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのイベントVBAを複数のシートで動かしたい 1 2022/12/07 16:55
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/12/26 12:05
- Excel(エクセル) Excelで日付のグラフへの表示 2 2022/04/15 11:04
- Visual Basic(VBA) excel vbaでselenium basic 3 2022/10/02 12:35
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Visual Basic(VBA) 【VBA】Excelで罫線を引きたい 3 2022/07/14 12:04
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Excel(エクセル) Excel グラフの軸に「表示単位の変更」の要領でテキストを追加したい 1 2022/06/08 16:27
- Excel(エクセル) エクセルのグラフに上下限値の横棒を表示させたい 5 2022/12/12 11:09
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/01/06 08:39
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
教えて下さい
-
配列でデータが入っている要素...
-
VBA 空白セルを削除ではない方...
-
VBAを使ってOutlookメール本文...
-
この行は既に別のテーブルに属...
-
<VB>String→Object
-
大学のゼミのレポートがムカつ...
-
S9タイプからXタイプにデータ...
-
VBAでシートからコンボボックス...
-
【エクセル】測定時間がバラバ...
-
DataGridViewのデータの引渡し...
-
issetでボタンが押されたかを確...
-
ビットシフトについて
-
シリアル通信でのデータ受信
-
多量のSUMIF式を軽くしたい
-
マクロで同じフォルダにある画...
-
シーケンサにパソコンからアク...
-
DIBフォーマットの読み込みとそ...
-
Winsockで1460Byte以降のデータ...
-
Accessで該当データにフラグを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えて下さい
-
配列でデータが入っている要素...
-
【エクセル】測定時間がバラバ...
-
メモ帳(テキストデータ)をExc...
-
VBA 空白セルを削除ではない方...
-
多量のSUMIF式を軽くしたい
-
この行は既に別のテーブルに属...
-
S9タイプからXタイプにデータ...
-
Excelのマクロでワードのテキス...
-
エクセルで2つの時系列のデー...
-
Accessで該当データにフラグを...
-
ユーザーフォームのテキストボ...
-
シーケンサにパソコンからアク...
-
EXCELVBAでSQLserverからデータ...
-
[C言語] コメント文字列を無視...
-
VBAを使ってOutlookメール本文...
-
プログラミング python pandas ...
-
VBA 毎日取得するデータを順番...
-
<VB>String→Object
-
カンマからスラッシュに
おすすめ情報