Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5539 / 13645 ツリー ←次へ | 前へ→

【50209】グラフの配列 さくら 07/7/14(土) 0:03 質問[未読]
【50210】Re:グラフの配列 かみちゃん 07/7/14(土) 6:50 発言[未読]
【50236】Re:グラフの配列 さくら 07/7/15(日) 2:30 お礼[未読]
【50237】Re:グラフの配列 かみちゃん 07/7/15(日) 9:36 発言[未読]
【50248】Re:グラフの配列 さくら 07/7/16(月) 0:26 お礼[未読]

【50209】グラフの配列
質問  さくら  - 07/7/14(土) 0:03 -

引用なし
パスワード
   お世話になります。
Webサイトから取得した毎日更新されるグラフデータを、毎回の実行時にセル(A1) → セル(B1)と、1行目のセルにA列から順に挿入していきたいのですが。
数値データなら、
Range("a1").End(xlToRight).Offset(0, 1).Value = ***のような感じで可能ですが、Webサイトから挿入したグラフデータで同じような動作をするにはどうすればよいのでしょうか?
ちなみに、例えば、Range("a1").End(xlToRight).Offset(0, 1).Value = 100 とした場合、セル(A1)(B1)に入力値があれば、(C1)に100が入力されますが、(A1)にしか入力値がない場合、セル(B2)に入力されず、エラーとなるのはなぜなのでしょうか?
よろしくお願いします。

【50210】Re:グラフの配列
発言  かみちゃん E-MAIL  - 07/7/14(土) 6:50 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>Webサイトから取得した毎日更新されるグラフデータを、毎回の実行時にセル
>(A1) → セル(B1)と、1行目のセルにA列から順に挿入していきたい

グラフは、あまり得意ではないので、役に立たないかもしれませんが、
グラフデータとは、どういうデータですか?
もしかして、グラフの画像を貼り付けたいということではないですよね?
(私、グラフ画像を取得して貼り付けているものですから・・・)

差し支えなければ、Webサイトをご紹介いただけると具体的なアドバイスは
できるかもしれないのですが・・・

> Range("a1").End(xlToRight).Offset(0, 1).Value = 100 とした場合、セル
> (A1)(B1)に入力値があれば、(C1)に100が入力されますが、(A1)にしか入力値が
> ない場合、セル(B2)に入力されず、エラーとなるのはなぜなのでしょうか?

End(xlToRight).Offset(0, 1)
としているからです。これは何をしていると思いますか?
試しに、B1セルより右側に一切値を入れない状態で、B1セルをアクティブにして
Ctrlキーを押しながら→キーを押してみてください。
そして、Offset(0, 1)ですから、その右側のセルを取得してみて・・・
できますでしょうか?

もし、列方向の最大列、たとえば、B列より右側には一切値が入っていない場合、
C列を取得したいというならば、End(xlToLeft).Offset(0, 1)
とすれば、エラーは出なくなります。

【50236】Re:グラフの配列
お礼  さくら  - 07/7/15(日) 2:30 -

引用なし
パスワード
   早々のご回答ありがとうございます!
グラフデータに関する質問ですが、おっしゃる通り、単純にWebサイトのグラフ画像を貼り付けたいだけです。お聞きしたかったのは、貼り付け方として、過去に取得した画像データは残したまま、新たに実行した際に、前回の画像と重ならないように、右方向に隙間なく貼り付けていきたかっただけです。
ちなみに貼り付けている画像は下記のYahooファイナンスの為替チャートです。
http://tchart.yahoo.co.jp/c/1y/cur/usdjpy=x.gif
(httpが半角では送信エラーとなったため全角にしました)
よろしくお願いします。

2つ目の質問に対するご回答は理解できました。
なるほど、そういうことだったんですね!
ありがとうございました!

【50237】Re:グラフの配列
発言  かみちゃん E-MAIL  - 07/7/15(日) 9:36 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> 単純にWebサイトのグラフ画像を貼り付けたいだけです。
> 貼り付け方として、過去に取得した画像データは残したまま、新たに実行した際
> に、前回の画像と重ならないように、右方向に隙間なく貼り付けていきたかった
> だけです。

やはりそうでしたか。

> ちなみに貼り付けている画像は下記のYahooファイナンスの為替チャートです。

であれば、私もほぼ同じようなことを以下のコードでしています。
参考にしてみてください。
Sub Sample()
 Dim strPicURL As String
 Dim pic As Object
 Dim dblLeft As Double
 
 '下のxxxxは、掲示板投稿時禁止文字列ですので、「http」(全角にしていますが半角で)にしてください。
 strPicURL = "xxxx://tchart.yahoo.co.jp/c/1y/cur/usdjpy=x.gif"
 With ActiveSheet
  dblLeft = 0
  For Each pic In .Pictures
   If Not Intersect(Range(pic.TopLeftCell, pic.BottomRightCell), .Rows(1)) Is Nothing Then
    If dblLeft = 0 Then dblLeft = pic.Left
    dblLeft = dblLeft + pic.Width
   End If
  Next
  With .Pictures.Insert(strPicURL)
   .Top = 0
   .Left = dblLeft
  End With
 End With
End Sub

【50248】Re:グラフの配列
お礼  さくら  - 07/7/16(月) 0:26 -

引用なし
パスワード
   かみちゃんさん、ありがとうございました。
参考にさせて頂きます!

5539 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free