[[20141024115500]] 『範囲指定したグラフの範囲を一行毎に下にずらして』(正ちゃん) ページの最後に飛ぶ

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

 

『範囲指定したグラフの範囲を一行毎に下にずらしてみる方法』(正ちゃん)

いつもお世話になります。
教えてください。

下記のデータがある場合例えば最初10日間の範囲のグラフを作成して、
その後にいづれかのキー(たとえばエンタキー)を押すごとに、
一行づつ10日間の範囲のグラフが、データが下にずれて(10個前のデータが消えて
、11個目のデータが加わり、常に10日間のグラフが見られるようにするにはどうすればできますか。

日付 値
2014/8/11 583
2014/8/12 589
2014/8/13 592
2014/8/14 593
2014/8/15 589
2014/8/18 590
2014/8/19 591
2014/8/20 590
2014/8/21 602
2014/8/22 602
2014/8/25 604
2014/8/26 598
2014/8/27 599
2014/8/28 597
2014/8/29 598
2014/9/1 600
2014/9/2 607
2014/9/3 615
2014/9/4 611
2014/9/5 606
2014/9/8 610
2014/9/9 606
2014/9/10 610
2014/9/11 619

実際のデータは株式のローソク足に移動平均線が3本付いたグラフです。
データー数は3000行ほどあります。
そのグラフを200行を範囲として見ています。
下にずらすときはグラフのデータの青色の線を一行づつ下にひっぱて見ていますが、
面倒で、うまく一行づつ引っ張れないので困っています。
何か良い方法があれば教えてください。

よろしくお願いします。

(正)

< 使用 Excel:Excel2010、使用 OS:Windows7 >


シートにActiveXのボタンを2つ貼っておき、以下をシートモジュールに貼り付け。

 Const RMAX = 10
 Dim iP As Long

 Private Sub CommandButton1_Click()
    If 2 < iP Then
        iP = iP - 1
    Else
        iP = 2
    End If

    ActiveSheet.ChartObjects("グラフ 1").Activate
    ActiveChart.SetSourceData Source:=Range("A1:B1,A" & iP & ":B" & iP + RMAX - 1)
    Range("A1").Select
 End Sub

 Private Sub CommandButton2_Click()
    Dim iMax As Long

    iMax = Cells(Rows.Count, "A").End(xlUp).Row

    If iP < iMax - RMAX + 1 Then
        iP = iP + 1
    Else
        iP = iMax - RMAX + 1
    End If

    ActiveSheet.ChartObjects("グラフ 1").Activate
    ActiveChart.SetSourceData Source:=Range("A1:B1,A" & iP & ":B" & iP + RMAX - 1)
    Range("A1").Select
 End Sub
(???) 2014/10/24(金) 13:39

(???) さん

早速 ご教示くださりありがとうございます。
マクロを勉強してやってみますので、もし解らないときはよろしくお願いします。

(正)

(正ちゃん) 2014/10/25(土) 03:53


(???) さん

ご指導の通り、
シートにActiveXのボタンCommandButton1、CommandButton2 を2つ貼って,
以下をシートモジュールに貼り付けました。

実行は下記のやり方でよろしいのでしょうか。
最初に8/11の583から8/22の602の10日間を範囲指定して折れ線グラフを
表示しました。
次にCommandButton1をクリックすると値の文字が表示しました。
次にCommandButton2をクリックすると下へ、クリックするごとに一行づつ
下へ降りてきます。又、CommandButton2をクリックすると、
クリックするごとに一日づつ過去に遡っていきます。
希望通りでうれしくなります。ありがとうございます。
ところがデータの途中、または最終日まで下げて変更を保存します。
保存したファイルを開くと保存した日のグラフで表示されますが、
CommandButton1、または2のボタンをクリックすると、
系列1,2,3と変なグラフになります。
続けてもう一度ボタンをクリックすると最初の8/22のぐらふになります。
保存した日のグラフの続きで下へ、または上に行くようにするには、
どのように変更すればよろしいでしょうか。
マクロは全く解りませんのでよろしくお願いします。

(正ちゃん) 2014/10/25(土) 20:37


お邪魔します。
どんなグラフかよく理解できていないので、駄目かも知れませんが。

 Sub 下方向に()
    Dim cht As Chart
    Dim s As String
    Dim xRng As Range

    Set cht = Sheets("Sheet1").ChartObjects(1).Chart

    With cht.SeriesCollection(1)
        s = Split(.Formula, ",")(1)
        Set xRng = Range(s)
        If xRng(xRng.Count).Row = xRng.End(xlDown).Row Then Exit Sub
        .XValues = xRng.Offset(1)
        .Values = xRng.Offset(1, 1)
    End With

 End Sub

 Sub 上方向に()
    Dim cht As Chart
    Dim s As String
    Dim xRng As Range

    Set cht = Sheets("Sheet1").ChartObjects(1).Chart

    With cht.SeriesCollection(1)
        s = Split(.Formula, ",")(1)
        Set xRng = Range(s)
        If xRng(1).Row = 2 Then Exit Sub
        .XValues = xRng.Offset(-1)
        .Values = xRng.Offset(-1, 1)
    End With

 End Sub

(マナ) 2014/10/25(土) 22:52


 たとえば、D1に「日付」、E1に「値」と見出しを付けて
 D2に =IF(INDEX(A:A,$F$2+ROW(A2))="","",INDEX(A:A,$F$2+ROW(A2)))
 E2に =IF(INDEX(B:B,$F$2+ROW(B2))="",NA(),INDEX(B:B,$F$2+ROW(B2)))
 の式をいれて、11行目までフィルドラッグ。

 D1:E11の範囲でグラフを描く

 スピンボタン等を設置し、リンクするセルをF2に設定して
 グラフのデータを切り替えるのはどうでしょう。
  
(HANA) 2014/10/25(土) 23:07

(マナ)さん

ご教示有難うございます。

マナさんのコードに(???) さん のコマンドボタン1,2とコードを加えて試してみました。
途中で保存して、再度呼び出して、上下方向どちらへも続けてもうまくいきます。
ありがとうございます。なお、マナさんのは最初の日数が何日にでも設定できますのでありがたいです。

実際のデータは株式のローソク足に移動平均線が4本付いたグラフです。
このグラフで使用するにはどのように変更すればよろしいでしょうか。
教えていただければありがたいです。

現在データー数は2500行ほどあります。土日祭日と取引所が休み以外は毎日増えていきます。
実際のデータは株式のローソク足に移動平均線が4本付いたグラフです。
グラフの日付はデータ通りに土日祭日は詰めて表示するようにしています。

過去の時点で230行(約一年間)を範囲として上下方向に動かしてローソク足と移動平均線との関係を見たいのです。

下記にデータの一部を貼り付けます。

26行目が項目行でデーターはB27〜J27までで、下に続きます。
25行目より上はグラフを表示する場所にしています。26行目でウインドウ枠を固定しています。
K列より右はいろいろ項目付けて売買記録等に使用しています。

銘柄名→ 三菱UFJ
コード↓ 日付 Open High Low Close 5MD 20MD 60MD 180MD
8306 2014/1/6 689 697 678 686 676 654 640 633
8306 2014/1/7 681 685 674 677 681 655 641 633
8306 2014/1/8 682 692 677 692 685 657 642 633
8306 2014/1/9 690 691 678 681 686 659 642 633
8306 2014/1/10 681 689 679 686 684 661 643 634
8306 2014/1/14 668 671 665 667 681 662 643 634
8306 2014/1/15 675 679 670 675 680 663 644 634
8306 2014/1/16 682 684 673 673 676 664 644 634
8306 2014/1/17 676 682 673 679 676 666 644 634
8306 2014/1/20 683 684 675 676 674 668 645 634
8306 2014/1/21 676 679 671 671 675 670 645 634
8306 2014/1/22 673 683 672 679 676 673 645 635
8306 2014/1/23 682 690 673 673 676 674 646 635
8306 2014/1/24 664 666 659 660 672 674 646 635
8306 2014/1/27 640 643 635 637 664 673 646 634
8306 2014/1/28 641 642 635 635 657 672 647 634
8306 2014/1/29 642 654 641 652 651 672 647 634
8306 2014/1/30 638 640 625 630 643 670 647 634
8306 2014/1/31 639 640 623 623 635 667 648 634
8306 2014/2/3 623 627 604 607 629 663 648 634
8306 2014/2/4 587 599 583 584 619 658 647 633
8306 2014/2/5 595 598 584 593 607 654 647 632
8306 2014/2/6 591 593 586 587 599 648 646 631
8306 2014/2/7 598 604 591 602 595 644 646 631

上記のデータで作成したローソク足と移動平均線のグラフを添えたいのですが添付する方法がわかりません。

よろしくお願いします。


(HANA)さん

ご教示有難うございます。

お教示の通り
D2、E2に数式入れてグラフを描きました。

スピンボタンを設置しました。

リンクするセルをF2に設置してグラフのデーターを切り替えるのはどうでしょう。
ここで行き詰っています。やり方がわかりません。
もう少し詳しく教えていただけませんでしょうか。

よろしくお願いします

(正ちゃん) 2014/10/26(日) 11:50


 スピンボタンが良くわからなければ
 F2セルの値を直接変更して、確認してみて下さい。

 0が入力(あるいは未入力)の時は 2行目からのデータが10件
 1が入力されている時は、3行目からのデータが10件・・・・
 D2:E11に表示されると思いますが、どうですか?
  
(HANA) 2014/10/26(日) 12:11

ごめんなさい。グラフを作成できないので、検証できていません。
データ系列が、順番通りなら大丈夫だと思います。

 Sub 下方向に()
    Dim cht As Chart
    Dim i As Long
    Dim s As String
    Dim xRng As Range

    Set cht = ActiveSheet.ChartObjects(1).Chart

    With cht.SeriesCollection
        For i = 1 To .Count
            With .Item(i)
                If i = 1 Then
                    s = Split(.Formula, ",")(1)
                    Set xRng = Range(s)
                    If xRng(xRng.Count).Row = xRng.End(xlDown).Row Then Exit Sub
                End If
                .XValues = xRng.Offset(1)
                .Values = xRng.Offset(1, i)
            End With
        Next
    End With

 End Sub

 Sub 上方向に()
    Dim cht As Chart
    Dim i As Long
    Dim s As String
    Dim xRng As Range

    Set cht = ActiveSheet.ChartObjects(1).Chart

    With cht.SeriesCollection
        For i = 1 To .Count
            With .Item(i)
                If i = 1 Then
                    s = Split(.Formula, ",")(1)
                    Set xRng = Range(s)
                    If xRng(1).Row = 26 Then Exit Sub
                End If
                .XValues = xRng.Offset(-1)
                .Values = xRng.Offset(-1, i)
            End With
        Next
    End With

 End Sub

(マナ) 2014/10/26(日) 13:15
(マナ) 2014/10/26(日) 13:41 修正


(HANA)さん

有難うございます。

 >F2セルの値を直接変更して、確認してみて下さい。
1,2,3とF2セルの値を変更すれば、グラフも変わっていきます。確認できました。

スピンボタンは設置できましたが、

>リンクするセルをF2に設定してグラフのデータを切り替えるのはどうでしょう

これはどのような作業をすればできるのでしょうか。
教えていただきたいです。よろしくお願いします。

(正)


(マナ)さん

有難うございます。

出来ました。ローソク足も移動平均線も共に変化していきます。
ありがたいです。

コマンドボタンを押すごとにグラフが変化していくのに同調してデータの行も上下できないでしょうか。
そうすると表示されているグラフの最後の日付、値、その他の情報が同時に見られますので。

または
最初にグラフの範囲指定した範囲の青色の枠線がコマンドボタンを押すと消えてしまいますが、
枠線を消さずにグラフと同調して枠線の一番下が表示できればそれでもいいのですが。

おんぶに抱っこで厚かましいですがよろしくお願いします。

(正ちゃん) 2014/10/27(月) 07:29


マナさんのアイデアを参考にして、IPの初期値が無い場合、先頭行を得るように修正した例です。
ついでに、上下する行数を定数に浮かせてみました。

 Const RMAX = 10
 Const RCOUNT = 1
 Dim iP As Long

 Private Sub CommandButton1_Click()
    If iP < 27 Then
        iP = Val(Split(Split(ActiveSheet.ChartObjects("グラフ 1").Chart.SeriesCollection(1).Formula, ",")(1), "$")(2))
    End If
    If 27 + RCOUNT - 1 < iP Then
        iP = iP - RCOUNT
    Else
        iP = 27
    End If

    ActiveSheet.ChartObjects("グラフ 1").Activate
    ActiveChart.SetSourceData Source:=Range("B26:J26,B" & iP & ":J" & iP + RMAX - 1)
 End Sub

 Private Sub CommandButton2_Click()
    Dim iMax As Long

    iMax = Cells(Rows.Count, "A").End(xlUp).Row

    If iP < 27 Then
        iP = Val(Split(Split(ActiveSheet.ChartObjects("グラフ 1").Chart.SeriesCollection(1).Formula, ",")(1), "$")(2))
    End If
    If iP < iMax - RMAX + RCOUNT - 1 Then
        iP = iP + RCOUNT
    Else
        iP = iMax - RMAX + 1
    End If

    ActiveSheet.ChartObjects("グラフ 1").Activate
    ActiveChart.SetSourceData Source:=Range("B26:J26,B" & iP & ":J" & iP + RMAX - 1)
 End Sub
(???) 2014/10/27(月) 10:42

 >スピンボタンは設置できましたが、 
 >>リンクするセルをF2に設定してグラフのデータを切り替えるのはどうでしょう 
 >これはどのような作業をすればできるのでしょうか。
 スピンボタンは二種類ありますが、コードが必要な方(ActiveXコントロール)を設定したのかな。。。?

 フォームコントロールの方(上側)に有るスピンボタンを配置して
 右クリック→コントロールの書式設定(F) の コントロールタブで
 リンクするセル(L) に F2 セルを指定します。

 ▲▼で、F2セルの値が変わるようになると思います。
  
(HANA) 2014/10/27(月) 14:41

(???) さん

ありがとうございます。

コードを入れ替えて試してみました。

ローソク足に移動平均線が4本付いたグラフで、正常に動作しました。
またグラフの範囲指定の青枠も表示されていてありがたいです。

ただ今までは手で青枠の角を上げ下げしてグラフを見ていました。
面倒でしたが、その結果いつもグラフの最後の日にちのデータ行が出ていました。
グラフの上げ下げと同時にデータ行も上下するとありがたいのですが。

最初の質問の時に解りやすくと思いグラフのデータ数を10行としましたが実際は230行ほどで見ています。グラフのデータ数を任意の行数に変えるにはどうすればよろしいでしょうか。

よろしくお願いします。

(正)


(HANA)さん

有難うございます。

はい。(ActiveXコントロール)の方でした。
フォームコントロールの方(上側)に有るスピンボタンを配置し直しました。
スピンボタンの上で、または他のセルの上ででも、右クリックしても、
コントロールの書式設定(F)が表示されずに、ここに移動(M)、ここにコピー(C)、キャンセル(A)
が出てきます。
ここで行き詰ってしまいました。
コントロールの書式設定(F)が表示するようにはどうすればよろしいでしょうか。
何度も済みません。

(正ちゃん) 2014/10/27(月) 16:33


最後にグラフをActiveにする直前に、Cells(iP, "A").Select の1文を入れてみてください。
(上下共)

あと、先頭の定数がデータ数と移動数にしてありますので、これを変えてみてください。

 Const RMAX = 10  '表示10データということ
 Const RCOUNT = 1 'ボタン押下で1データずれるということ
(???) 2014/10/27(月) 16:42

 >コントロールの書式設定(F)が表示されずに、ここに移動(M)、ここにコピー(C)、キャンセル(A) 
 >が出てきます。 
 たぶん、クリックしてから離すまでの間に、マウスが動いてます。

 マウスが動かないように気を付けて、右クリックしてみて下さい。

 あるいは、スピンボタンを選択すると 描画ツールの書式タブが表示されます。
 図形のスタイル グループの右下にある□がクリック出来ると思いますので それをクリックしてください。
 ポインタを合わせてしばらく待つと『[図形の書式設定]ダイアログボックスを表示します。』と表示されますが
 コントロールの書式設定が表示されると思います。

 それか、キーボードの右下の Ctrlキーの(たぶん)左側に メニューを表示させるボタンがありますので
 スピンボタンが選択された状態で、それを押してみて下さい。
 右クリックメニューが表示されると思います。
  
(HANA) 2014/10/27(月) 21:41

(HANA)さん

丁寧な説明をしていただき有難うございました。

やっと出来ました。グラフ移動にこのような方法もあるのですね。勉強になりました。
やはりマウスの操作が悪かったのです。

最初はマウスが動かないように何度もやりましたが、ダメでした。

そこで他の方法もやってみました。

>あるいは、スピンボタンの・・・ 

をしましたが描画ツールの書式タブが出てこない。

>それか、キーボドの・・・・

をしましたが、右クリックメニューが表示されない。

一旦あきらめて、再度パソコン立ち上げ、スピンボタンを右クリックしたら、
今度は出ました。コントロールの書式設定画面が、リンクするセルをF2に指定しました。

余談:
ところがそのあと何度スピンボタンの上で右クリックしてもコントロールの書式設定画面でないのです。
何年もパソコンを触っていますので右クリックでマウスが動くことはないと思ってましたが。

一度は出たんだからとマウスをいろいろやり方を試しているうちに気が付きました。
私のマウス操作が右クリックしてから手を放すまでの時間が長すぎるのでした。
クリックしてすぐ放せば上手くできます。
HANAさんのお蔭で私の長年の悪い癖が気が付きました。
有難うございました。お礼が言いたくて長々と書きました。今後ともよろしくお願いします。

(正ちゃん) 2014/10/28(火) 12:51


 解決された様で何よりですが

 >>あるいは、スピンボタンの・・・  
 >をしましたが描画ツールの書式タブが出てこない。

 スピンボタンは選択しましたか?
 最初にスピンボタンを描くと、ボタンの四隅に○と中間に□が表示され
 選択された状態です。

 この時、描画ルールの書式タブが表示されていると思いますが。

 選択が解除された状態から、再度選択するには
 「右クリックをしてすぐ放す」とか
 ホームタブの編集グループの 検索と選択▼を開くと
 オブジェクトの選択(O) が有りますので
 それを選ぶと、図形が左クリックで選択できる様になります。

 >それか、キーボドの・・・・ 
 >>をしましたが、右クリックメニューが表示されない。
 キー自体が反応していないのでしょうか?
 目的の右クリックメニューが表示されなかっただけでしょうか?
 後者であれば、やはり 「スピンボタンはきちんと選択されていたかな?」と
 疑問に思います。

 >私のマウス操作が右クリックしてから手を放すまでの時間が長すぎるのでした。 
 やってみましたら、確かに「ここに移動(M)、ここにコピー(C)、キャンセル(A)」
 が出てきますね。

 今まで、右クリックでドラッグ&ドロップした時にしか出ないと思っていました。

 こちらこそ、貴重な情報をありがとうございました。
   
(HANA) 2014/10/28(火) 14:22

(???) さん

有難うございます。
報告が遅くなりすみません。

>最後にグラフをActiveにする直前に、Cells(iP, "A").Select の1文を入れてみてください。(上下共)

入れました。

>あと、先頭の定数がデータ数と移動数にしてありますので、これを変えてみてください。

データ数を5、100等 いろいろ試してみました。その通りに出来ました。ありがとうございます。

>Const RCOUNT = 1 'ボタン押下で1データずれるということ

この件ですが、私の質問の仕方がまずかったかも。
実際のデータは26行目に項目名だ入っています。
データーは27行目から下に入っています。
そしてY27のセルでウインドウ枠の固定をしています。

ボタンを押すごとにデータ行も同時に上下出来ないものでしょうか。
グラフの最後の日付のデータがグラフの最後の値といつも同じになるように。
そうなるとグラフの最後の日付のいろいろの情報が同時に見られますので。

よろしくお願いします。

(正ちゃん) 2014/10/29(水) 09:22


範囲を上に移動は Cells(iP, "A").Select、下に移動は Cells(iP + RMAX - 1, "A").Select としてみてください。

任意行のスクロールには、ActiveWindow.SmallScroll up:=RCOUNT のように記述する方法もあるのですが、
これは現在の表示状態に関係なくスクロールするので、例えば手作業で選択範囲を画面外に追い出していると、
範囲外のままスクロールするのです。試してみれば、違和感を感じるかと思います。

Select文の場合、指定された行が範囲外になるならばスクロールする、という動作になるので、画面外に
追い出した状態でも、表示できるように復帰してくれます。
(???) 2014/10/29(水) 10:22


再度お邪魔します。
これが、正ちゃんさんのイメージしているものに近いかもしれません。

Application.Goto Cells(iP + RMAX - 1, "A"), True

(マナ) 2014/10/29(水) 21:20


(???)さん

返事が遅くなりすみません。

グラフは希望通り表示されます。

私のお願いの仕方が要領を得ないのかも。

最初にグラフ範囲を指定するときに最後のデータがモニター画面の最後の行になるように範囲指定しています。
ボタン2を押すごとにグラフが表示されると同時に、26行目でウインドウ枠を固定しているのでデータ行が上に1行づつ上に上がり(隠れて)新しいデータがモニター画面の一番下に表れる。又、ボタン1を押すごとに隠れいるデータ行が表れ、古いデータがモニター画面の一番下に表れる。
グラフの範囲指定の青枠は同じ位置で動かず、データ行のみが変わります。

そうすると表示されているグラフの値と、表示されているデータ行の最後の値が一致しますので、その他の同じ行の情報を見ることができてありがたいのです。

このようにはどうすればよろしいでしょうか。

よろしくお願いします。

(正)


(マナ) さん

何度も有難うございます。

私はマクロは超初心者で人様の作られたマクロをコピーさせていただき勉強せてもらっています。

ご教示いただいた
>Application.Goto Cells(iP + RMAX - 1, "A"), True

は前回のマクロのどこに入れ、どうすればよいかわかりません。

前回までのグラフはスムースに動いていい調子です。
最初にグラフの範囲指定した青枠線はボタンをおすと消えてしまいますが、青枠線は残しておくことは可能でしょうか。そのうえで、(???) さんにお願いしました内容と同じですが、

最初にグラフ範囲を指定するときに最後のデータがモニター画面の最後の行になるように範囲指定しています。
ボタン2を押すごとにグラフが表示されると同時に、26行目でウインドウ枠を固定しているのでデータ行が上に1行づつ上に上がり(隠れて)新しいデータがモニター画面の一番下に表れる。又、ボタン1を押すごとに隠れいるデータ行が表れ、古いデータがモニター画面の一番下に表れる。
グラフの範囲指定の青枠は同じ位置で動かず、データ行のみが変わります。

そうすると表示されているグラフの値と、表示されているデータ行の最後の値が一致しますので、その他の同じ行の情報を見ることができてありがたいのです。

このようにはどうすればよろしいでしょうか。

よろしくお願いします。

(正ちゃん) 2014/10/31(金) 18:37


青枠は、グラフをクリックすればいいだけなので、
マクロで実行する意味があるのかわかりませんが、こうですか。

 Sub 下方向に()
    Dim cht As Chart
    Dim i As Long
    Dim s As String
    Dim xRng As Range

    Set cht = ActiveSheet.ChartObjects(1).Chart

    With cht.SeriesCollection
        For i = 1 To .Count
            With .Item(i)
                If i = 1 Then
                    s = Split(.Formula, ",")(1)
                    Set xRng = Range(s)
                    If xRng(xRng.Count).Row = xRng.End(xlDown).Row Then Exit Sub
                End If
                .XValues = xRng.Offset(1)
                .Values = xRng.Offset(1, i)
            End With
        Next
    End With
    Application.ScreenUpdating = False
    Application.Goto xRng(xRng.Count).Offset(1, -1), True
    ActiveWindow.LargeScroll up:=1
    cht.Parent.Select
    Application.ScreenUpdating = True

 End Sub

 Sub 上方向に()
    Dim cht As Chart
    Dim i As Long
    Dim s As String
    Dim xRng As Range
    Const データ開始行 = 27

    Set cht = ActiveSheet.ChartObjects(1).Chart

    With cht.SeriesCollection
        For i = 1 To .Count
            With .Item(i)
                If i = 1 Then
                    s = Split(.Formula, ",")(1)
                    Set xRng = Range(s)
                    If xRng(1).Row = データ開始行 Then Exit Sub
                End If
                .XValues = xRng.Offset(-1)
                .Values = xRng.Offset(-1, i)
            End With
        Next
    End With
    Application.ScreenUpdating = False
    Application.Goto xRng(xRng.Count).Offset(-1, -1), True
    ActiveWindow.LargeScroll up:=1
    cht.Parent.Select
    Application.ScreenUpdating = True

 End Sub

(マナ) 2014/11/01(土) 09:45


(マナ) さん

有難うございます。

正に希望通りのものです。感謝。

ところが、
全く同じデータ形式の別のファイルに上記の感謝しましたマクロをコピー貼り付け、
しまして、ボタン1をクリックしたのですが、エラーになってしまいました。

実行時エラー1004
Range メソッドは失敗しました worksheet オブジェクト 

と表示されました。デバックしたら、

set xRng = range(s) が黄色くなっていました。

恥ずかしながら全くマクロに関して解っていないんです。
何が原因でしょうか。また正しいコピーの仕方を教えていただけませんか。

(正ちゃん) 2014/11/02(日) 00:11


シート名に、カンマ(,)が含まれていますか?
(マナ) 2014/11/02(日) 10:04

(マナ) さん

有難うございます。

>シート名に、カンマ(,)が含まれていますか?

カンマ(,)はが含まれていません。

いろいろ調べてみましたが、気が付いたことは開いているシートの中に別のグラフが隠れていたりすると
動作しないようです。

そこでマナさんに最後に作っていただいたマクロのファイルを(グラフ&データ完成)としてディスクトップに張り付けてあります。
このファイルをコピーして、データ数が少ないので実際に合ったデータ数を追加して、その他いろいろの数式もコピーして使用するようにしました。そうすると巧くいきます。

ファイルのシートもコピーして増やせば銘柄名も増やせますのでこれで利用させていただきます。

長い間のご指導有難うございました。

(正ちゃん) 2014/11/02(日) 15:56


原因が他にグラフがあるからということであれば、
対象のグラフに好きな名前を付けて指定するとよいです。

 Set cht = ActiveSheet.ChartObjects(1).Chart
 ↓
 Set cht = ActiveSheet.ChartObjects("株価").Chart
  
http://office.microsoft.com/ja-jp/excel-help/HA010223127.aspx 現在参照不可
  

(マナ) 2014/11/02(日) 18:17


(マナ) さん

いろいろと有難うございます。

株価と名前を付けて実際に使用して見ます。
また困ったことがありましたらよろしくお願いします。

(正ちゃん) 2014/11/04(火) 09:15


コメント返信:

[ 一覧(最新更新順) ]


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