[[20200514004727]] 『毎回決まっていない範囲を散布図に』(大貧民) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『毎回決まっていない範囲を散布図に』(大貧民)

先月ここで大変お世話になりましたがまた訪問させて頂きました。
素人ながら以下のようにコードを書きました。

Sub この数値を散布図に。勉強()

    Dim a As Long
    a = 15                            '15行目から指定
    Do Until Cells(a, 1) = ""         '空白になるまで
    Cells(a, 12) = Cells(a, 4) * 1.1  'L列15行目から空白まで
    Cells(a, 11) = Cells(a, 5) * 24   'K列15行目から空白まで
    a = a + 1                         'カウントアップ
    Loop
End Sub

この場合にK列とL列を散布図に指定するやり方はありますでしょうか。
毎日範囲が変わるのでさっぱりわからず状態になっております。
コードを何卒ご鞭撻頂ければと思います。

また
・シート名を散布図のタイトルにする
・X方向やY方向のラベルをあらかじめ決めて表示されるようにする

など可能ですか。わかり辛い説明で大変申し訳ございませんが
よろしくお願いします。

< 使用 Excel:Excel2019、使用 OS:Windows10 >


提示のコードと質問の関係がわかりませんが
こんな感じで、タイトルとデータ系列を変更できます。

 Sub test()
    Dim r As Range
    Dim cht As Chart

    With ActiveSheet
        Set r = .Range("a15", .Cells(Rows.Count, 1).End(xlUp))

        Set cht = .ChartObjects(1).Chart

        cht.ChartTitle.Text = .Name
        With cht.SeriesCollection(1)
            .XValues = r.Columns(11)
            .Values = r.Columns(12)
        End With
    End With

 End Sub

>・X方向やY方向のラベルをあらかじめ決めて表示されるようにする

意味がわかりません。

(マナ) 2020/05/14(木) 21:14


マナさん ありがとうございました。
作って頂いたコードを使ってやってみましたが実行時エラー1004が出てしまいグラフ化できませんでした。

>・X方向やY方向のラベルをあらかじめ決めて表示されるようにする
これについてはすみません、お恥ずかしいですがなかった事にして頂きます。
(大貧民) 2020/05/14(木) 22:24


 最近?いや元々??頓珍漢な回答が続きますが、、、(^^;
 >この場合にK列とL列を散布図に指定するやり方はありますでしょうか。

 素朴に↓でどうでしょうか???
ActiveSheet.ChartObjects(1).Chart.SetSourceData Source:=Range("K15", Range("k" & Rows.Count).End(xlUp).Resize(, 2))
失礼!Indexで指定した方がいいですね。。すみません。
(SoulMan) 2020/05/14(木) 22:39

同じフォーマットのグラフを、毎回、新規作成するつもりでしょうか。
雛形を用意しておき、複製して使い回せばよいのではありませんか。
わたしのは、予めグラフがある状態で、タイトルとデータを変更するものです。
シートにグラフがなければ、エラーになります。

(マナ) 2020/05/14(木) 23:36


 私のは違いますね。。多分
マナさんのはタイトルがないといけないみたいなので
cht.HasTitle = True
を追加してみるとか。。。
(SoulMan) 2020/05/15(金) 00:25

(マナ)様
ぐうの音も出ないほど馬鹿ですみません。。こんな馬鹿にそうやって親切に教えて頂いて感謝しかありません。
散布図作っておいたら見事なまでに反映されました。

自分の発想の貧困さ、、そりゃそうですね、先にテンプレートの図作っておくのが当たり前に効率いいですね。
ありがとうございました。

(大貧民) 2020/05/15(金) 00:45


 Sub test()
    Dim r As Range
    Dim cht As Chart
    With ActiveSheet
        Set r = .Range("a15", .Cells(Rows.Count, 1).End(xlUp))
        Set cht = .ChartObjects(1).Chart
        cht.ChartTitle.Text = .Name
        With cht.SeriesCollection(1)
            .XValues = r.Columns(11)
            .Values = r.Columns(12)
        End With
    End With
 End Sub

教えて頂いたこのコードのおかげでかなりのデータが処理できるようになりました。大変感謝しています。
他セルに文字入力があったり空白だったりでたまにグラフ範囲が狂う事があるのは仕方ないですかねやはり。

他のセル、列に文字や空白があろうとなかろうと
L列15行目から空白までとK列15行目から空白まで の範囲選択をする

この条件だけを絶対的に遂行してくれるようなコードはやはり不可能なのでしょうか。
弄ってみたけど泥沼でした。

(大貧民) 2020/05/15(金) 23:44


そういう条件であれば、マクロは不要です。

http://officetanaka.net/excel/function/tips/tips71.htm
https://www.moug.net/tech/exopr/0010001.html
https://kokodane.com/kan54.htm

(マナ) 2020/05/16(土) 07:44


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.