現在、オフィス2003で業務の時刻表を作成しています。
写真(左上)のように業務内容と所要時間ような表があり、(右上)のようなグラフにして輸送の部分だけを色付き、他を白色で塗りわけしています。
しかし(左下)のように、順番が1行でも変わると塗り分もずれてしまます。
現在、この塗り分けを自動化するためにマクロやVBAなどを考えていて、以下のようなVBAを作り実行をさせましたが、思うように表示されません。
Sub Macro2()
'
ActiveSheet.ChartObjects(1).Activate
ActiveChart.ChartArea.Select
Dim scname As String
Dim colidx As Variant
Dim i As Integer
With ActiveChart
For i = 1 To .SeriesCollection.Count
scname = .SeriesCollection(i).Name
Select Case Split(scname, " ")
Case "輸送": colidx = 4
End Select
.SeriesCollection(i).Interior.ColorIndex = colidx
Next
End With
End Sub
何かよい方法は(VBAやマクロなども踏まえて)ありますでしょうか? ご教授宜しくお願いします。
(最終的に凡例は表示させたくはありませんが、らラベルとして系列名を表示させたく思っています。)
No.1ベストアンサー
- 回答日時:
★1の行で、Split(scname, " ")では配列になるだけです。
提示例ではSplitする必要は無いと思います。
Splitする必要があるなら
Split(scname, " ")(0)
とか番号を付けて"輸送"の部分を取り出す必要があります。
colidx = 0
With ActiveChart
For i = 1 To .SeriesCollection.Count
scname = .SeriesCollection(i).Name
'Select Case Split(scname, " ") '---★1
Select Case scname
Case "輸送": colidx = 4 '---白なら2
End Select
If colidx <> 0 Then '---場合分けする
.SeriesCollection(i).Interior.ColorIndex = colidx
colidx = 0 '---初期化する
End If
Next
End With
Select Case を使わないでも十分だと思います。
colidx = 4
With ActiveChart
For i = 1 To .SeriesCollection.Count
scname = .SeriesCollection(i).Name
If scname = "輸送" Then
.SeriesCollection(i).Interior.ColorIndex = colidx
End If
Next
End With
あと線の色がどうなるか未確認です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) エクセルのマクロとシートの保護について教えてください。 1 2022/10/18 08:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) 先ほど、回答者様によって教えていただいたのですがどうしたらいいか分かりません。 ユーザーフォーム上に 2 2023/02/21 22:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
メッセージボックスのOKボタ...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
一つのTeratermのマクロで複数...
-
ソース内の行末に\\
-
Excel VBAからAccessマクロを実...
-
EXCELのVBAでRange("A1:C4")を...
-
ExcelVBAでPDFを閉じるソース
-
エクセルVBAでNAVITIMEを使って...
-
Excelのマクロボタンをダブルク...
-
マクロの連続実行
-
マクロの連続印刷が突然不可能...
-
エクセルで別のセルにあるふり...
-
特定文字のある行の前に空白行...
-
エクセルに張り付けた写真のフ...
-
エクセルのマクロについて教え...
-
VBAにて別ワークブック上の実行...
-
エクセル マクロ 指定日の指定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
他人が作ったマクロの理解
-
ExcelVBAでPDFを閉じるソース
-
TERA TERMを隠す方法
-
エクセルで別のセルにあるふり...
-
マクロ実行時、ユーザーフォー...
-
Excel VBAからAccessマクロを実...
-
EXCELのVBAでRange("A1:C4")を...
-
TeraTermマクロの文字列結合
-
PDF出力マクロについて。マクロ...
-
#defineの定数を文字列として読...
-
エクセルのマクロをセルの値に...
-
wordを起動した際に特定のペー...
おすすめ情報