Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


13206 / 13644 ツリー ←次へ | 前へ→

【6494】グラフ作成のマクロ しほ 03/7/4(金) 10:50 質問
【6497】Re:グラフ作成のマクロ Jaka 03/7/4(金) 12:08 発言
【6503】Re:グラフ作成のマクロ しほ 03/7/4(金) 16:08 質問
【6523】Re:グラフ作成のマクロ Jaka 03/7/7(月) 9:44 回答
【6524】それと..。 Jaka 03/7/7(月) 9:46 発言
【6553】Re:グラフ作成のマクロ しほ 03/7/8(火) 16:37 お礼

【6494】グラフ作成のマクロ
質問  しほ  - 03/7/4(金) 10:50 -

引用なし
パスワード
   はじめまして。
グラフ作成を自動化したいと思い
VBA は ほとんどわからないので、マクロの記録の機能を使ってみました。

できたマクロを、マクロ記録時のデータを使って確認してみましたが、
「コンパイルエラー」となって実行できません。
グラフ作成はマクロの記録機能で登録したマクロはそのまま
使えないのでしょうか?
どこを変えればよいとか、ポインタ、書籍等でもよいので
教えてください。

現在、環境はWindows2000 OFFICE2000 ですが、
実際は Windows XP,Office XP で動かしたいと思います。

【6497】Re:グラフ作成のマクロ
発言  Jaka  - 03/7/4(金) 12:08 -

引用なし
パスワード
   こんにちは。
グラフの事もさっぱりわからないJakaです。

>できたマクロを、マクロ記録時のデータを使って確認してみましたが、
>「コンパイルエラー」となって実行できません。
実際、マクロ記録した物でもエラーになっちゃって動かないものもあります。
他のパターンとして、グラフが既にあるのに同じ名前で作ろうとしたりするとエラーになる実行エラーなどもあります。

コンパイルエラーという事なので、もっと別な事かもしれませんが。
つきましては、そのエラーになると言うコードと検証させるためのデータなども載せていただけると、回答がしやすくなると思います。説明なども加えて..。
(因みにグラフのコードだけ載せられても、私には解析できません。)

【6503】Re:グラフ作成のマクロ
質問  しほ  - 03/7/4(金) 16:08 -

引用なし
パスワード
   ▼Jaka さん:
>実際、マクロ記録した物でもエラーになっちゃって動かないものもあります。
そういうものなのですか。今までそういう事はなかったので がっかり。。。

>他のパターンとして、グラフが既にあるのに同じ名前で作ろうとしたりするとエラーにな
>る実行エラーなどもあります。
グラフは消してから実行していますので、そういうことはないと思います。

データは横に日付、縦に数値が4種類あります。
日付ごとに数値を棒グラフと折れ線グラフで表現したいのですが、
うまくいきません。(マクロでなければOKなんですが。)

ちなみにコードですが。。。
**************
Sub グラフ()

  Range("F21:G21").Select
  Charts.Add
  ActiveChart.ApplyCustomType ChartType:=xlBuiltIn, TypeName:="2 軸上の折れ線と縦棒"
  ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A10:X14"), PlotBy _
    :=xlRows
  ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
  With ActiveChart
    .HasTitle = True
    .ChartTitle.Characters.Text = "グラフ練習"
    .Axes(xlCategory, xlPrimary).HasTitle = False
    .Axes(xlValue, xlPrimary).HasTitle = False
    .Axes(xlCategory, xlSecondary).HasTitle = False
    .Axes(xlValue, xlSecondary).HasTitle = False
  End With
  ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowNone, LegendKey:=False
  ActiveChart.HasDataTable = True
  ActiveChart.DataTable.ShowLegendKey = True
  ActiveSheet.Shapes("グラフ 14").ScaleWidth 1.49, msoFalse, _
    msoScaleFromBottomRight
  ActiveSheet.Shapes("グラフ 14").ScaleHeight 1.49, msoFalse, _
    msoScaleFromBottomRight
  ActiveSheet.Shapes("グラフ 14").ScaleWidth 1.3, msoFalse, msoScaleFromTopLeft
  ActiveSheet.Shapes("グラフ 14").ScaleHeight 1.32, msoFalse, msoScaleFromTopLeft
  "データ テーブル".Comment.Shape.Select ←★ここでコンパイルエラー
  Selection.AutoScaleFont = False
  With Selection.Font
    .Name = "MS Pゴシック"
    .FontStyle = "標準"
    .Size = 8
    .Strikethrough = False
    .Superscript = False
    .Subscript = False
    .OutlineFont = False
    .Shadow = False
    .Underline = xlUnderlineStyleNone
    .ColorIndex = xlAutomatic
    .Background = xlAutomatic
  End With
  ActiveChart.ChartTitle.Select
  Selection.AutoScaleFont = False
  With Selection.Font
    .Name = "MS Pゴシック"
    .FontStyle = "標準"
    .Size = 20
    .Strikethrough = False
    .Superscript = False
    .Subscript = False
    .OutlineFont = False
    .Shadow = False
    .Underline = xlUnderlineStyleNone
    .ColorIndex = xlAutomatic
    .Background = xlAutomatic
  End With
End Sub
***********

【6523】Re:グラフ作成のマクロ
回答  Jaka  - 03/7/7(月) 9:44 -

引用なし
パスワード
   おはようございます。
提示されたコードをぐちゃぐちゃ直してみたけれど..。
実際コード見ただけで、どの様にしたいのか解りませんので合っているとは思えませんけど。

Sub グラフ2()
  Application.ScreenUpdating = False
  Charts.Add
  With ActiveChart   'グラフシート
    .SetSourceData Source:=Sheets("Sheet1").Range("A10:X14"), PlotBy:=xlRows
    .Location Where:=xlLocationAsObject, Name:="Sheet1"
  End With
  With ActiveChart   'Sheet1のグラフ
    .ApplyCustomType ChartType:=xlBuiltIn, TypeName:="2 軸上の折れ線と縦棒"
    .HasTitle = True
    .ChartTitle.Characters.Text = "グラフ練習"
    .Axes(xlCategory, xlPrimary).HasTitle = False
    .Axes(xlValue, xlPrimary).HasTitle = False
    .ApplyDataLabels Type:=xlDataLabelsShowNone, LegendKey:=False
    .ChartGroups(1).HasDropLines = True
    .HasDataTable = True
    .DataTable.ShowLegendKey = True
    .DataTable.Font.Size = 8
    .ChartTitle.Font.Size = 20
    Grf = Mid(.Name, InStr(1, .Name, " ") + 1)
  End With
  With ActiveSheet.Shapes(Grf)
    .ScaleWidth 1.49, msoFalse, msoScaleFromBottomRight
    .ScaleHeight 1.49, msoFalse, msoScaleFromBottomRight
    .ScaleWidth 1.3, msoFalse, msoScaleFromTopLeft
    .ScaleHeight 1.32, msoFalse, msoScaleFromTopLeft
  End With
  Application.ScreenUpdating = True
  ThisWorkbook.Activate
  ActiveCell.Activate
  End
End Sub


因みに下記コードは実行エラーとなっちゃいます上必要なさそうなので、はしょりました。他の部分で必要なさそうな所も消してあります。
>    .Axes(xlCategory, xlSecondary).HasTitle = False
>    .Axes(xlValue, xlSecondary).HasTitle = False

【6524】それと..。
発言  Jaka  - 03/7/7(月) 9:46 -

引用なし
パスワード
   XP環境が無いので、XP関連では試していません。
Win98 & ExL97
Win98 & Exl2000  でのみ。

【6553】Re:グラフ作成のマクロ
お礼  しほ  - 03/7/8(火) 16:37 -

引用なし
パスワード
   ありがとうございます!

直していていただいたソースでセル位置等を調整して
無事動くようになりました。

その他 マクロ記録で作成したソースもくっつけて
目的のグラフが作成できるようになりました。
何が悪かったのか、未だわかりませんがとにかく
解決いたしました。ありがとうございました。

13206 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free