
教えてください!
今、フォームで表示されたリストボックスから一つ項目を選択しOKボタン(CommandButton1)を押すと、すでに別のワークシートに作成されたグラフが今開いているシートにユーザーフォームで表示されるというファイルを作成しています。
グラフがユーザーフォーム内に表示されるというのは出来たのですが、項目数が7つあるリストボックスからそれぞれ選択すると、
AAA→グラフ1
BBB→グラフ2
CCC→グラフ3
DDD→グラフ4
・
・
・
という風に「リストボックスのこの文字を選択しOKボタンを押すと、このグラフが表示されるようにする」といったようなマクロを完成させたいのです。
ちなみにグラフが表示されるようにするのに、以下のような記述をしました。
-------------------------------------------------
Worksheets("グラフ1").ChartObjects(1).Chart.Export ThisWorkbook.Path & "\Chart1.gif"
UserForm1.Image1.Picture = LoadPicture(ThisWorkbook.Path & "\Chart1.gif")
UserForm1.StartUpPosition = 1
UserForm1.Show
-------------------------------------------------
困っています。
教えてください。宜しくお願いいたします。
No.2ベストアンサー
- 回答日時:
こんにちは。
Worksheets("グラフ1").ChartObjects(1).Chart.Export ThisWorkbook.Path & "\Chart1.gif"
これは、別にエキスポートしてください。ユーザーフォームが起動のたびに、エキスポートする必要はありませんから。7個あったら、それぞれ名前を確認して、出力してください。
For i = 1 to 7
Worksheets("グラフ1").ChartObjects(i).Chart.Export ThisWorkbook.Path & "\Chart"& i &".gif"
Next i
などとします。
サンプルコードです。現在は、4個しかありませんが、やり方はお分かりになると思います。配列で、名称とグラフのGif名とを連動させます。
'<ユーザーフォームモジュール>
Dim myCharts As Variant
Private Sub CommandButton1_Click()
i = Me.ListBox1.ListIndex
Me.Image1.Picture = LoadPicture(ThisWorkbook.Path & "\" & myCharts(i))
End Sub
'この部分は余計かもしれません
Private Sub ListBox1_Click()
MsgBox "リストボックスのこの文字を選択しOKボタンを押すと、" & ListBox1.Value _
& "のグラフが表示されます。"
End Sub
Private Sub UserForm_Initialize()
Dim ListArray As Variant
ListArray = Array("AAA", "BBB", "CCC", "DDD")
myCharts = Array("Chart1.gif", "Chart2.gif", "Chart3.gif", "Chart4.gif")
Me.ListBox1.List = ListArray
End Sub
この回答への補足
お返事が遅くなってしまい、申し訳ありません。
ちなみに「グラフをエキスポートする」というのはどういうことなのでしょう?
ちなみにグラフは同じブック内のデータとリンクしており、データは頻繁に変更されます。
フォームのグラフはその都度、シートから呼び出されるようにしたいのですが。
よろしくお願いします。
No.1
- 回答日時:
分岐の話だけという認識で回答します。
list1は、リストボックスの名前です
for i=0 to list1.listcount -1
if (list1.selected(i)) then
if list1.list(i) = "AAA" then
'グラフ1のよびだし
elseif list1.list(i) = "BBB" then
'グラフ2のよびだし
elseif list1.list(i) = "CCC" then
'グラフ3のよびだし
end if
end if
next
お礼が遅くなってしまい、申し訳ありません。
分岐させるというのは上記のようなやり方でできたんですね!
どうもありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
たくさん作った同じ設定のグラ...
-
エクセルでグラフタイトルが折...
-
エクセルにおける、グラフの指...
-
y/xが単調増加だとそのグラフが...
-
エクセルグラフの一括設定。
-
エクセル(Excel)の目盛りの一...
-
イラレのグラフがグループ解除...
-
エクセルでこんなグラフを作り...
-
エクセルのグラフタイトルを中...
-
~エクセル~円グラフのみを抽...
-
(エクセル)グラフにテキスト...
-
パワーポイントに貼り付けたエ...
-
Wordでレポートを作っています...
-
Excel:とびとびの日付のデータ...
-
エクセルのグラフデータのリン...
-
EXCEL・複数ある円グラフの円の...
-
EXCELで海の潮見表(タイドグラ...
-
エクセル2016 一つのピポットデ...
-
エクセル:ぴったり重なった後...
-
エクセルのグラフの一部拡大
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルにおける、グラフの指...
-
エクセルでグラフタイトルが折...
-
たくさん作った同じ設定のグラ...
-
エクセルグラフの一括設定。
-
イラレのグラフがグループ解除...
-
エクセル(Excel)の目盛りの一...
-
~エクセル~円グラフのみを抽...
-
y/xが単調増加だとそのグラフが...
-
パワーポイントに貼り付けたエ...
-
エクセルのグラフの一部拡大
-
EXCELでの棒グラフの太さについて
-
エクセルグラフの数値軸(Y)の...
-
エクセルで作業ごとの時間をグ...
-
excel 波形
-
EXCEL・複数ある円グラフの円の...
-
エクセルで散布図をつくったとき
-
excel2010 グラフエリアの外の...
-
エクセル:ぴったり重なった後...
-
Panasonic Let's note CF-SZ5 ...
-
EXCELで海の潮見表(タイドグラ...
おすすめ情報