Excel VBA質問箱 IV

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

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


6107 / 13646 ツリー ←次へ | 前へ→

【47067】Web ページ上のグラフの取得 さくら 07/2/28(水) 1:16 質問[未読]
【47069】Re:Web ページ上のグラフの取得 ちくたく 07/2/28(水) 10:44 発言[未読]
【47109】Re:Web ページ上のグラフの取得 さくら 07/3/1(木) 1:17 お礼[未読]
【47110】Re:Web ページ上のグラフの取得 かみちゃん 07/3/1(木) 1:33 発言[未読]
【47134】Re:Web ページ上のグラフの取得 さくら 07/3/1(木) 23:42 お礼[未読]
【47135】Re:Web ページ上のグラフの取得 かみちゃん 07/3/2(金) 0:25 発言[未読]
【47177】Re:Web ページ上のグラフの取得 さくら 07/3/3(土) 9:27 お礼[未読]
【47136】Re:Web ページ上のグラフの取得 Kein 07/3/2(金) 0:50 回答[未読]
【47137】Re:Web ページ上のグラフの取得 Kein 07/3/2(金) 1:20 回答[未読]
【47138】Re:Web ページ上のグラフの取得 かみちゃん 07/3/2(金) 1:33 発言[未読]
【47179】Re:Web ページ上のグラフの取得 さくら 07/3/3(土) 9:44 お礼[未読]
【47180】Re:Web ページ上のグラフの取得 さくら 07/3/3(土) 9:49 お礼[未読]
【47178】Re:Web ページ上のグラフの取得 さくら 07/3/3(土) 9:36 お礼[未読]

【47067】Web ページ上のグラフの取得
質問  さくら  - 07/2/28(水) 1:16 -

引用なし
パスワード
   下記にて、Web上の表データは取得できるのですが、グラフの取得の仕方がわかりません。Web上のグラフも取得可能なのでしょうか?
また、毎日データが更新されるため、エクセルを開くだけでマクロが実行できると助かるのですが、可能でしょうか?
よろしくお願いします。

With ActiveSheet.QueryTables.Add(Connection:= _
   "URL;アドレス", _
     Destination:=Range("a1"))
 
   .BackgroundQuery = True
   .TablesOnlyFromHTML = True
   .Refresh BackgroundQuery:=False
   .SaveData = True
  End With
End Sub

【47069】Re:Web ページ上のグラフの取得
発言  ちくたく E-MAIL  - 07/2/28(水) 10:44 -

引用なし
パスワード
   さくら さん
こんにちは。

教えてgooに以下の投稿がありました。
共有知識ですので、著作権違反には当たらないと判断し、
以下に、urlを転記します。(httpをつけてください。)
えいちてぃてぃーぴーoshiete1.goo.ne.jp/qa2669779.えいちてぃーえむえる

>また、毎日データが更新されるため、エクセルを開くだけでマクロが実行できると助かるのですが、可能でしょうか?

これは、モジュールではなく、Workbook上とかに、

Private Sub Workbook_Open()

End Sub

で書けばいけるのではないでしょうか。

【47109】Re:Web ページ上のグラフの取得
お礼  さくら  - 07/3/1(木) 1:17 -

引用なし
パスワード
   ちくたくさん
ご回答ありがとうございます。
ただ、私が参照するWeb上のグラフは、グラフのみで、元となる数値データがないのですが。「データ」-「外部データの取り込み」からグラフのあるページを取り込もうとしても、グラフ以外の文字は取り込めるのですが、なぜか、グラフだけ取り込めません。
やはりグラフは取り込めないのでしょうか?

【47110】Re:Web ページ上のグラフの取得
発言  かみちゃん E-MAIL  - 07/3/1(木) 1:33 -

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

横から失礼します。

>やはりグラフは取り込めないのでしょうか?

私は、Webに載っている株価チャートのグラフを取り込んでいますが、同様の方法でできないでしょうか?
グラフというより画像を取り込むというイメージかと思います。

 With ActiveSheet
  .Range("A1").Select
  .Pictures.Insert "http://〜/xxx.gif"
 End With
(httpという文字は、全角になっているので、半角にしてください)

具体的なWebの場所などを教えていただけると、もう少し詳しく説明して検証もできるのですが。

【47134】Re:Web ページ上のグラフの取得
お礼  さくら  - 07/3/1(木) 23:42 -

引用なし
パスワード
   かみちゃんさん、ご回答ありがとうございます。
奇遇にも、私も株価チャートのグラフを取り込みたいのですが、
2箇所のアドレスで、教えていただいたコードに入れて試してみましたが、うまくいきませんでした。
試してみたアドレスは以下です。
よろしくお願いします。

http://www.stockweather.co.jp/sw/mchart/t1/0050_01.html

http://www.traders.co.jp/stocks_info/kokunai_stocks/kokunai_index/kokunai_index_chart.asp?ID=0229&TITLE=東証1部証券・商品先物取引

【47135】Re:Web ページ上のグラフの取得
発言  かみちゃん E-MAIL  - 07/3/2(金) 0:25 -

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

>株価チャートのグラフを取り込みたい

以下のような感じでいかがでしょうか?

Sub Sample()
 With ActiveSheet
  .Range("A1").Select
  .Pictures.Insert "http://www.stockweather.co.jp/sw/mei/13/images/s1301_t.gif"
 End With
End Sub
(httpという文字は、全角になっているので、半角にしてください)

【47136】Re:Web ページ上のグラフの取得
回答  Kein  - 07/3/2(金) 0:50 -

引用なし
パスワード
   そのページにある6個のチャートを、縦に並べて挿入するなら

Sub MyPic_INS()
  Dim i As Long, j As Long
  Dim Lp As Single, Tp As Single
  Dim Wp As Single, Hp As Single
  Dim CdAry As Variant, NmAry As Variant
  Const URLTop As String = _
  "http://211.9.244.17/sw/mei/13/images/d"
 
  CdAry = Array(1301, 1331, 1332, 1334, 1377, 1379)
  NmAry = Array("極洋", "ニチロ", "日水", "マルハ本社", _
  "サカタタネ", "ホクト")
  Application.ScreenUpdating = False: j = 1
  Range("A:A").ClearContents
  With Range("B1:F13")
   Lp = .Left: Wp = .Width: Hp = .Height
  End With
  With ActiveSheet.Pictures
   If .Count > 0 Then .Delete
   For i = 0 To UBound(CdAry)
     Cells(j, 1).Value = NmAry(i)
     With .Insert(URLTop & CdAry(i) & "_t.gif")
      .Left = Lp: .Top = Rows(j).Top
      .Width = Wp: .Height = Hp
     End With
     j = j + 14
   Next i
  End With
  Columns("A:A").AutoFit
  Application.ScreenUpdating = True
End Sub

空白シートを開いて実行してみて下さい。
定数 URLTop の先頭4文字は半角に変換して下さい。

【47137】Re:Web ページ上のグラフの取得
回答  Kein  - 07/3/2(金) 1:20 -

引用なし
パスワード
   もう一つは、枠線を消した方が見やすいようです。こんな感じです。

Sub MyChart_Add()
  ActiveWindow.DisplayGridlines = False
  Range("A1").Select
  With ActiveSheet.Pictures
   If .Count > 0 Then .Delete
   .Insert "http://www.traders.co.jp/chart/index_chart.cgi?ID=0229"
  End With
End Sub

【47138】Re:Web ページ上のグラフの取得
発言  かみちゃん  - 07/3/2(金) 1:33 -

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

横から失礼します。

>もう一つは、枠線を消した方が見やすいようです。

枠線を消したくないときは、以下のようにしてもいいのではないでしょうか?
'  ActiveWindow.DisplayGridlines = False '←★削除
  Range("A1").Select
  With ActiveSheet.Pictures
   If .Count > 0 Then .Delete
   .Insert "http://www.traders.co.jp/chart/index_chart.cgi?ID=0229"
   .ShapeRange.Fill.Solid '←★追加
  End With

【47177】Re:Web ページ上のグラフの取得
お礼  さくら  - 07/3/3(土) 9:27 -

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

【47178】Re:Web ページ上のグラフの取得
お礼  さくら  - 07/3/3(土) 9:36 -

引用なし
パスワード
   Keinさん、ありがとうございます。
並べて表示できると、とても見やすいです!
コードの書き方を参考にして、もっと勉強したいと思います。

【47179】Re:Web ページ上のグラフの取得
お礼  さくら  - 07/3/3(土) 9:44 -

引用なし
パスワード
   かみちゃんさん、ありがとうございます。
枠線を消さない書き方もわからなかったので参考になりました。

【47180】Re:Web ページ上のグラフの取得
お礼  さくら  - 07/3/3(土) 9:49 -

引用なし
パスワード
   Keinさん、ありがとうございます。
確かに枠線がない方が見やすいですね。

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