質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

1回答

3033閲覧

Excel 円グラフに指定範囲のデータを反映できない

plsusk

総合スコア4

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2019/08/23 01:38

前提・実現したいこと

データを元に円グラフを作成をしていたのですが、今週に入って
急に下記のエラーが出現し、グラフが作成出来なくなってしまいました。
また、下記のコードの意味を理解できず、修正対応が出来なくて困っております。

発生している問題・エラーメッセージ

実行時エラー’-2147467259(80004005) ’setsourcedata'メソッドは失敗しました:’_Chart’オブジェクト

該当のソースコード

Sub makegraph_全体()

Dim ws As Worksheet
Dim chartobj As ChartObject
Dim chart1 As Chart

Set ws = ThisWorkbook.Worksheets("提出用データ")

ws.Shapes.AddChart2(259, xlPie).Select

With ActiveChart
.ClearToMatchStyle
.ChartStyle = 259
.FullSeriesCollection(1).DataLabels.ShowPercentage = True
.HasTitle = True
.ChartTitle.Formula = "タイトル(仮)"
.ChartTitle.Top = 0
.ChartTitle.Left = 0
.SetSourceData ws.Range(Cells(2, 15), Cells(3, 16))
.SetElement msoElementDataLabelOutSideEnd
End With

End Sub

試したこと

該当モジュールをエクスポートし、新規ブックにインポート→失敗
上記のコードを新規ブックにコピーし、シートには指定範囲にのみデータを記載→成功
※失敗しているブックは、ピボットテーブルがあり、そこから必要なデータのみ抽出して別のセルに貼付
そのデータをグラフ化したい

補足情報(FW/ツールのバージョンなど)

Excel2016

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mattuwan

2019/08/23 01:50

どの行でエラーが出るのかを一応記載していただけると、より親切だと思います
plsusk

2019/08/23 02:07

ご指摘ありがとうございます。 .SetSourceData ws.Range(Cells(2, 15), Cells(3, 16)) 上記行で、記載のエラーが発生しております。
guest

回答1

0

動作確認ができるように、
コードが全部開示してない上に、
サンプルデータもないので、
当てずっぽうですが、

.SetSourceData ws.Range(Cells(2, 15), Cells(3, 16))

.SetSourceData ws.Range(ws.Cells(2, 15), ws.Cells(3, 16))

としても、変化なしですか?

シート名をちゃんと明示してないセル範囲の指定は、
アクティブなシートのセル範囲と勝手にエクセル君が判断するので、
エラーの元です。
変数「ws」にActiveなシートが入っていれば問題が無いのですが、
アクティブなシートがwsないなら、記述に矛盾がでるので、
エラーになります。

ちなみに手動ではデータ範囲の変更はできますか?
手動で出来ないことは、VBAで命令しても出来ないので、
まずは確認ですね。
で、エラーが出たなら、
そのエラーメッセージで検索してみてください。
大抵の場合、だれかが同じように困っているので、
解決策が見つかります。

投稿2019/08/23 02:10

mattuwan

総合スコア2136

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

plsusk

2019/08/23 02:31

>動作確認ができるように、 コードが全部開示してない上に、 サンプルデータもないので、 →すみません。。こちらのサイトの使い方もいまいちわからず、 VBAも始めたばかりで質問の仕方が悪く、申し訳ございません。 ご提示いただいたコードに変更しても、同様のエラーメッセージがでたので その他ご意見いただいた点で確認してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問