[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数のプロシージャをまたぐループ』(MC)
掲示板の皆さま
VBA初心者のMCと申します。
セルB3に7203など株式コードを入力し、Excel組み込みのBloombergからデータを取得してチャートを更新し、Axes_Printで軸の調整を行ってPDF出力するマクロです。
ここで7203の後順次リストのコードを入力し、チャートをPDF出力していきたいと考えています。
よってRange("B3").Value = Range("AD" & i).Valueといった形でiをDo〜Loop Whileしたいのですが、このループはAxes_Printが終わってから行いたいため、複数のSubをまたぐループが作れずに困っています。
Bloombergのデータ取得に時間がかかるため、Subで分けて順序を作る必要があると考えていますが、もし別の方法で回避できるのであれば柔軟に設計を変更したいと思います。
https://codeday.me/jp/qa/20190311/363169.html
ご教示いただければ幸いです。
どうぞよろしくお願いいたします。
Range("B3").Value = 7203 ' ここにTickerを入れると任意の企業のシートを出力できます
Application.Run "RefreshAllStaticData" Application.OnTime Now + TimeValue("00:00:30"), "Axes"
End Sub
Sub Axes_Print()
Worksheets("stock.c").Activate Range("O6").Value = Round(Worksheets("stock.d").Range("D33").Value * 1.1 + 0.5, 0) Range("O7").Value = Round(Range("O6").Value / Range("E55").Value, 1)
Worksheets("stock.d").Range("J24:K24").Copy Destination:=Worksheets("stock.d").Range("J19:K23") Worksheets("stock.c").Activate ActiveSheet.ChartObjects("priceChart").Activate ActiveChart.Axes(xlValue).Select ActiveChart.Axes(xlValue).MaximumScale = Range("O6") ActiveChart.Axes(xlValue).MajorUnit = Range("O6") / 5 ActiveChart.Axes(xlValue, xlSecondary).Select ActiveChart.Axes(xlValue, xlSecondary).MaximumScale = Range("O7") ActiveChart.Axes(xlValue, xlSecondary).MajorUnit = Range("O7") / 5 Range("B3").Select
Application.Wait Now() + TimeValue("00:00:5")
Dim fileName As String fileName = ThisWorkbook.Path & "\" & Format(Range("J1").Value, "yyyymmdd") & "_" & Range("A1").Value ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, fileName:=fileName
End Sub
< 使用 Excel:Office365、使用 OS:Windows10 >
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.