0

私は VBA の初心者で、MATlab の経験が少ししかありません。

現時点では、ComboBox の出力に応じて、Userform を使用して (同じユーザーフォームに) 異なるグラフを表示しようとしています。このチュートリアルに基づいてチャートを表示しています。基本的に、画像は GIF として保存され、Image Control で開かれます。

たとえば、グラフを Chart#_#### として保存しています。Chart1_4301. 番号のシーケンスは ComboBox のオプションと同じです。Combobox の 1_4301 で CurrentChart を Chart1_4301 に設定し、GIF の保存と画像の制御手順を実行します。

Private Sub Open_Graph_But_Click()
'This sub opens a different graph depending on the combobox selection

Set CurrentChart = "Chart" & ComboBox1.Value


CurrentChart.Parent.Width = 900
CurrentChart.Parent.Height = 450

'   Save chart as GIF
Fname = ThisWorkbook.Path & Application.PathSeparator & "temp.gif"
CurrentChart.Export Filename:=Fname, FilterName:="GIF"

'   Show the chart
Image1.Picture = LoadPicture(Fname)

End Subb

さまざまな名前のグラフをループできるかどうかはわかりません。その方法を調べてみましたが、これが何と呼ばれているのかわからないので、役に立つものを見つけるのは難しいです。

見つけたものは、上記のセットアップに私を導きましたが、実行時エラー '13' が表示されます: タイプの不一致 Set CurrentChart = "Chart" & ComboBox1.Valueが強調表示されています。どんなアドバイスでも大歓迎です!

4

1 に答える 1

1

私はそれを説明するために、次のマクロを作成しました。アクティブ シートには、Chart 1、Chart 2、Chart 3、および Chart 4 の 4 つのチャートがあります。セル B23 に、「チャート名」を Chart 1/2/3 または 4 として入力しています。これに基づいて、私の次のマクロは動作します。どのようなチャートを入力しても、選択したチャートが赤の背景として設定され、残りの 3 つは黄色の背景としてフォーマットされます。方法が見つからなかったので、本を添付できませんでした。それでも方法がわからない場合は、メールを送ってください。ワークブックをアップロードします。

Sub RunMacro()

Dim sht As Worksheet
Dim co As ChartObject

Dim selectedChart As String

Set sht = ActiveSheet ' it may be your sheet like Worksheets("Sheet1") or Worksheets("Sheet2")

selectedChart = sht.Range("B23").Value ' assign the selected chart from combobox

Dim chrt As Chart

'''option 1: Loop through all the charts


For Each co In sht.ChartObjects
    If co.Name = selectedChart Then
        co.Chart.ChartArea.Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
    Else
        co.Chart.ChartArea.Format.Fill.ForeColor.RGB = RGB(255, 255, 0)
    End If
Next co

'option 2: select the chart directly and popup the size




Set chrt = sht.ChartObjects(selectedChart).Chart

MsgBox "Selected Chart is " & selectedChart & " and the chart is for " & chrt.ChartTitle.Text

End Sub

お役に立てれば。ヴィカス B

于 2013-07-29T13:53:12.150 に答える