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

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

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

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

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

2回答

11709閲覧

VBA グラフの系列に順に色を設定(RGB)

RIKU_SANADA

総合スコア8

VBA

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

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2016/07/19 15:50

はじめまして。Excelマクロを業務利用するようになった初心者です。

グラフの系列に順に色を設定するマクロを組みたかったのですが、
以下の通り作成しても様々エラーが生じてうまくいきません。
間違っている箇所と修正方法を御指摘いただきたくよろしくお願いいたします。


Sub color()
'
' color Macro
' chartsを順繰りに色決め

Dim i As Long, j As Long
Dim r As Long, g As Long, b As Long

For i = 0 To Charts.Count
For j = 0 To l

r = InputBox("rは?", "r", 0)
g = InputBox("gは?", "g", 0)
b = InputBox("bは?", "b", 0)

ActiveChart.SeriesCollection(j + 1).Select With Selection.Format.Fill .Visible = msoTrue .ForeColor.RGB = RGB(r, g, b) .Transparency = 0 .Solid End With

Next j
Next i

End Sub

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

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

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

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

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

jawa

2016/07/20 06:19

質問文中に普通にソースコードを記載いただくと、前スペースが除去されてしまい、For文などのネストが見難くなってしまいます。 ソースコードは前後の行に```で囲っていただけると見やすくなって助かります。
guest

回答2

0

EXCEL といえども、バージョン依存部分がありますので、
EXCELのバージョン(2007 / 2010 / 2013 / 2016など)と、x86(x32) / x64 の別を
掲示してください。

可能であれば、 Select を使わないコードを書いてください。
↓に参考サイトを例示しておきます。「系列の色を設定する」では
Select を使っていないですよね?

例えば、
OFFICE TANAKA
系列の色を設定する
http://officetanaka.net/excel/vba/graph/13.htm
で、「Excel 2007で、系列の色を設定するには」などと
なっているのは何故でしょうか?考えてみてください。
⇒EXCEL 2007以後は、メニューなど見た目も変化しましたが、
グラフィックスとグラフのオブジェクトなどにも、手が入っています。
EXCEL 2003 迄、EXCEL 2007 以後で、書き方に注意が必要です。

EXCEL 2003 までは、↑サイトの様なオブジェクトモデルがヘルプで参照できたのですが
EXCEL 2007以後のバージョンではヘルプからは削除されている様子です。
⇒VBEの オブジェクトブラウザ―で、オブジェクトを確認します。
'
慣れても、解りずらいですが、
Office 開発者向けドキュメント
https://msdn.microsoft.com/ja-jp/office
ForeColor プロパティ
https://msdn.microsoft.com/ja-jp/library/office/ff194749.aspx
などと、Google検索を併用して情報収集したりします。
⇒行きつく先が OFFICE TANAKA だったり、EXCEL でお仕事! のコンテンツだったりします。
EXCEL 大辞典 、VBレスキュー花ちゃん だるまのエクセルVBA など様々なサイトがありますので、
渉猟してみてください。
初心者さん向けは、
OFFICE TANAKA / EXCEL でお仕事! / VBレスキュー花ちゃん / だるまのエクセルVBA
かも、

無駄なSelectをしない
http://officetanaka.net/excel/vba/speed/s2.htm
マクロってどこに書けばいいの?
http://officetanaka.net/excel/vba/beginner/10.htm

VBE⇒ツール:オプション 
の変数の宣言を強制する のチェックは入れてください。
書いたコードの最上行に

VBA

1Option Explicit '変数の宣言を強制する

が無い場合は、入れる様にしてください。
プログラム(コード)の投稿は、投稿欄に</>があると思います。
使い方は、
ヘルプ
3分でわかるteratail
質問するときのヒント
を参照してください。

投稿2016/07/19 23:02

編集2016/07/19 23:29
daive

総合スコア2028

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

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

RIKU_SANADA

2016/07/20 15:30

回答とインストラクションをありがとうございます! ヘルプなどを参照しながら弄り回していましたところ、どうやら機能するものができたようです。。 何がダメだったのか、なぜ動くようになったのか、まだクリアでないので、そこを整理し、書式も整えて再掲させて頂こうと思います。。有難う御座いました。
RIKU_SANADA

2016/07/20 15:31

なお、エクセルは、 バージョン2010、x32 でした。
guest

0

まず苦言

質問する上で一番大事なのは、困っている状況を正確に伝えることではないでしょうか?

>様々エラーが生じてうまくいきません。
では、実際どんなことが起こっていて、結果どんな問題が発生しているのか全くわかりません。

回答者の手元には同じ環境のPCがあるわけではありません。
提示いただいたソースはありますが、xlsファイルもダウンロードするわけではないですし、バージョンも違うかもしれません。
動かしても同じ現象が起きるかはわかりませんよ?

せめて実行結果やエラー内容くらいは端折らず記載してほしいです。

問題のありそうな部分

発生しているエラーがわからないので確証は持てませんが、疑わしいのは

ActiveChart.SeriesCollection(j + 1).Select

の部分です。

ActiveChartとはその名の通りActiveなChartですので、グラフがアクティブでなければ使用できません。

直前に

ActiveSheet.ChartObjects(1).Activate

のようなコードで目的のグラフをアクティブ化しておく必要があると思います。

推測ですのではずしていたらすみません。
参考になれば幸いです。

投稿2016/07/20 06:53

jawa

総合スコア3013

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

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

RIKU_SANADA

2016/07/20 15:32

回答とご指導をありがとうございます! ヘルプなどを参照しながら弄り回していましたところ、どうやら機能するものができたようです。。 何がダメだったのか、なぜ動くようになったのか、まだクリアでないので、実行内容とエラー結果など含めて整理し、書式も整えて再掲させて頂こうと思います。。有難う御座いました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問