• 締切済み

Excelグラフでの軸の表示方式変更方法

Excelにてグラフをマクロで作成しており、X軸のデータが、0.23025,0.350075,0.04439・・・とあるのですが、 表示上、このX軸のデータを少数点以下2桁までのデータで表示したく(0.25,0.35,0.45というように) マクロの記憶にて、表示形式を変更した操作を記憶させたのですが、記録させたマクロを実行させると  "オブジェクトは、このプロパティまたはメソッドをサポートしていません。"でます。 ちなみに記録させたマクロは以下の通りで、   ActiveSheet.ChartObjects("グラフ 783").Activate ActiveChart.Axes(xlCategory).Select Selection.TickLabels.NumberFormatLocal = "0.00_ "  TickLabels.NumberFormatLocalのところがサポートされていないと表示されます。 Excel97で行ってるのですが、他にマクロで表示形式を変更する方法はあるのでしょうか?

  • kots
  • お礼率73% (17/23)

みんなの回答

  • paspas
  • ベストアンサー率52% (47/90)
回答No.1

質問の答えになっていないように思いますが、元データのセルの表示形式を、小数点2桁に制限すれば実現可能です。

kots
質問者

お礼

どうもありがとうごさいました。

関連するQ&A

  • AccessからEXCELのグラフの操作をしたい

    AccessからExcelのシートのデータを参照して EXCELのグラフを操作しています グラフのテキストに任意の文字を入れたいのですが msoTextOrientationHorizontal で(定数が定義されていません) とコンパイルエラーになってしまいます これを回避する方法がありましたらご教授ください 初めてグラフを操作するので困っています         '// グラフのデータを設定    ActiveChart.SetSourceData Source:=Sheets("DATA").Range("B1:B7,D1:D7") '// グラフテキスト ActiveChart.ChartTitle.Text = "テスト" ' /// X数値軸ラベル" ActiveChart.Axes(xlCategory).AxisTitle.Text = "X数値軸ラベル" '/// Y数値軸ラベル ActiveChart.Axes(xlValue).AxisTitle.Text = "Y数値軸ラベル" ' '//グラフ内にテキストボックスの埋め込み With ActiveChart With .Shapes.AddTextbox(msoTextOrientationHorizontal, 13, 10, 70, 50) .TextFrame.Characters.Text = "へのへのもへじ End With End With

  • エクセル グラフ データラベルにX軸の値を表示

    VBAでエクセルのグラフにX軸の値を表示させる方法を教えて下さい。 このように書いているのですが、Type:=xlCategoryでエラーとなってしまいます。 For i = 1 To ActiveChart.SeriesCollection(1).Points.Count ActiveChart.SeriesCollection(1).Points(i).HasDataLabel = True ActiveChart.SeriesCollection(1).ApplyDataLabels Type:=xlCategory Next i Y軸を表示させるxlValueではエラーとならず、Y軸の値が表示されました。 教えて下さい。 宜しくお願い致します。

  • 複数のグラフを整列させて表示する方法

    現在、複数のグラフを作成するマクロを作っています(ちなみに、今日はじめてマクロを用いたグラフ作成に取り組みました)。 それぞれの行に13個のデータが入っていて(平均値と標準偏差がそれぞれ入っている)、それを用いて行ごとにグラフを作成します。 データが格納されている行はだいたい300個くらいなのですが、今のままだと300のグラフがすべて重ねられた状態で出てきます。 これを整列した状態で表示させたいのですが、どのようにすればよいのでしょうか? あと、今回はほとんど「マクロの記録」で作ったので、なんかソースが汚ないのでもう少し綺麗にならないでしょうか? 下にソースをのせておきます。よろしくお願いします。 Sub Macro6() ' ' Macro6 Macro ' ' Dim x As Long Cells(1, 1).Select x = Range(Selection, Selection.End(xlDown)).Rows.Count For i = 2 To x Range(Cells(i, 2), Cells(i, 14)).Select 'これがないと棒どうしが密着したグラフになる。 ActiveSheet.Shapes.AddChart.Select 'データの範囲を指定 ActiveChart.SetSourceData Source:=Range(Cells(i, 2), Cells(i, 14)) 'エラーバーをつける ActiveChart.ChartType = xlColumnClustered ActiveChart.SeriesCollection(1).HasErrorBars = True ActiveChart.SeriesCollection(1).ErrorBar Direction:=xlY, Include:=xlErrorBarIncludeBoth, Type:=xlErrorBarTypeCustom, Amount:=Range(Cells(i, 15), Cells(i, 27)), MinusValues:=Range(Cells(i, 15), Cells(i, 27)) 'Legendを消す ActiveChart.Legend.Select Selection.Delete 'タイトルや軸ラベルの名前を変更する ActiveChart.SetElement (msoElementChartTitleAboveChart) ActiveChart.ChartTitle.Text = Cells(i, 1) ActiveChart.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis) ActiveChart.Axes(xlCategory, xlPrimary).axistitle.Text = "Class" ActiveChart.Axes(xlCategory, xlPrimary).axistitle.Font.Size = 14 ActiveChart.SetElement (msoElementPrimaryValueAxisTitleRotated) ActiveChart.Axes(xlValue, xlPrimary).axistitle.Text = "Intensity" ActiveChart.Axes(xlValue, xlPrimary).axistitle.Font.Size = 14 Next i End Sub

  • Excel VBA で[軸のオプション]表示

    Excel2016にて、グラフの軸の最大値、最小値を頻繁に調整する必要があるため、[軸を選択して右クリック、軸の書式設定]で表示される軸の書式設定のパネル(右側に表示されるウィンドウ)をボタン一つで表示できるようにしたいのですが、うまくいきません。 オートマクロで作成すると、下記のような感じで一応は表示されるのですが… 例) x軸の軸のオプション表示の場合 ActiveSheet.ChartObjects("選択したグラフ名").Activate ActiveChart.Axes(xlCategory).Select Application.CommandBars("Format Object").Visible = True この場合、問題が2つあり 1.Excelを起動した直後(軸の書式設定パネルを一度も表示していない)場合にはエラーが発生して表示できない。 2.パネルの項目が、塗りつぶしや、配置などになっていると、軸のオプションに切り替わらない。 という現象が起きてしまいます。一度手動で軸のオプションを表示した後は、有効になります。 これでは微妙に使えないので、ダイレクトに表示する方法が知りたいのですが、見つけることができませんでした。 どなたかわかる方がいらっしゃいましたらよろしくお願いします。 P.S  VBAでダイヤログを作成して直接入力という方法もあるのかもしれませんが、スケールを部分的に拡大したりの調整なので、軸のオプションの方が使い勝手が良いように思います。 以上、よろしくお願いします。

  • Excelでのグラフ作成用マクロについて。

    「新しいマクロを記録する」でグラフ作成用のマクロを作りました。 内容は、 1.sheet1のBC列を散布図でsheet2に出力。(4つほど別々のグラフを作成) 2.プロットエリアの拡大 3.図の位置調整・図の大きさ調整。(4つが重ならないように) というものです。 一応出来たのですが、何故か選択列を変更して(マクロ内の列選択を変更)出力・プロットエリア拡大までは出来るのですが、3が出来ません。 それで、分からないなりにマクロ内を覗いてみたところ、図の位置を調整する際に、対象となる図が ActiveSheet.Shapes("グラフ 17").IncrementLeft -177.75 などと言うように、グラフ17を参照してしまっているためにうまく動かないのだと思いました。 (そもそも、名前なんて付けていないはず・・・と思って調べていたら、どうやら「グラフウインドウ」で見ることが出来る名前を参照しているようでした。) いっそのこと、グラフをクリック・ドラッグで移動させるのではなく、出力する際に整然と並ぶように設定したいです。どうすればよいでしょう? 一応、作成したものを載せておきます。 ・1~2 Charts.Add ActiveChart.ChartType = xlXYScatter ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("B1:C32158"), _ PlotBy:=xlColumns ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet2" With ActiveChart .HasTitle = False .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "mass" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "counts" End With ActiveChart.HasLegend = False ActiveChart.PlotArea.Select With Selection.Interior .ColorIndex = 2 .Pattern = xlSolid End With Selection.Top = 1 Selection.Width = 323 Selection.Height = 180 Selection.Left = 15 Selection.Width = 334 Selection.Height = 194 ActiveChart.Axes(xlCategory).Select With ActiveChart.Axes(xlCategory) .MinimumScale = 0 .MaximumScale = 50 .MinorUnitIsAuto = True .MajorUnit = 5 .Crosses = xlAutomatic .ReversePlotOrder = False .ScaleType = xlLinear .DisplayUnit = xlNone End With End Sub 3. ActiveSheet.Shapes("グラフ 17").IncrementLeft -182.25 ActiveSheet.Shapes("グラフ 17").IncrementTop -105.75 End Sub

  • ExcelVBA グラフの軸ラベル ユーザー定義の表示形式設定について

    初めまして。よろしくお願いします。 Excelで散布図を作成し、軸ラベルを任意の表示形式に設定したいのですが、Excel2007では実行可能ですが、Excel2003で実行エラーになります。 設定したい内容は [赤][=34]▲34;[赤][=38]▼38;G/標準 です。 2007での実行可能なソース lngHaniKagen=34 lngHaniJyogen=38 Chart.Axes(xlValue).TickLabels.NumberFormatLocal = "[赤][=" & lngHaniKagen & "]" & "▲" & lngHaniKagen & ";[赤][=" & lngHaniJyogen & "]" & "▼" & lngHaniJyogen & ";G/標準" Excel2003で自動マクロで登録すると ActiveChart.Axes(xlValue).Select Selection.TickLabels.NumberFormatLocal = "[赤][=34]""▲""34;[赤][=38]""▼""38;G/標準" ですが、マクロを実行すると、またエラーになります。 ちなみに実行エラーは 実行時エラー1004 「入力した表示形式が正しくありません。」で 「あらかじめ組み込まれている表示形式のいずれかを しようしてみてください」とも表示されます。 その場合 Selection.TickLabels.NumberFormatLocal = "0.00" などにすると実行可能です。 可変の値でその都度設定したいのですができずに困ってます。 2007ではできたり、2003ではできないのに、自動マクロ登録をすると エラーになったソースと同じになったり、何をしたらいいのか わかりません。 ご存じの方、ご教授お願いいたします。

  • エクセルグラフの軸ラベルを一括変換出来なくて困っています。

    お世話になります。 初めて投稿いたします。 VBA初心者です。エクセルグラフの軸ラベルを一括変換したいのですが、分からなくて困っています。 過去ログ、個人HPなどを参考にして、一つのグラフを選択、下記マクロを実行すれば、一つのグラフのみなら軸ラベルを変更する事が出来たのですが、ワークシート内の複数の埋め込みグラフを一発でラベル変更する場合のマクロが作成できません。 当方会社員、データをまとめる為、今回100ヶほどのグラフを一括変換したいため、どうしてもマクロ処理したいと考えています。 For Each・・・Next でループさせたいのですが、何分初心者勉強中の為、エラー多発、何方かお分かりの方、お助け下さい。 Sub 軸ラベル一括変換() With ActiveChart With .Axes(xlCategory, xlPrimary) .HasTitle = True .AxisTitle.Text = "X" End With With .Axes(xlValue, xlPrimary) .HasTitle = True .AxisTitle.Text = "y" End With End With End Sub

  • 任意にデータの範囲を選択し、グラフを描画したい

    質問を閲覧していただきありがとうございます。 できればみなさんのお力を貸していただきたいことがあり、質問しました。 以下にマクロ作成に用いたプログラムの仕様とコードを貼りますので、ご指摘等いただけましたら幸いです。 まず、今回のマクロの目的は ・既に存在するエクセルデータから、x軸、y軸のデータ列の長さに応じたグラフを描画するVBプログラムを書く事 です。 ・可能ならば、既存のふたつのグラフを結合したものを新しく表示する ※データシートの画像は添付しましたのでご覧ください。 以上のふたつとなります。 理想形としては、 A2 ~ A1025までをx軸のデータ、B2~B1025までの実データ値としたグラフAを一つ D2 ~ E1025までをx軸のデータ、E2~E1025までの実データ値としたグラフBを一つ 上記二つのグラフを結合したグラフを一つ の3つのグラフが自動的に作成され、エクセルファイル上に表示されている といったような感じです。 私の書いたコードの問題点としては、 ・グラフAグラフBともに「x軸と実データが正しく対応していない」 →本来両方のグラフにおいてはグラフの右端まで折れ線グラフが続いているはずですが、x軸の値にして約1000の所でデータが終わってしまっています。 ・グラフBでは、D2 ~ D344, E2 ~ E344 を基にしたグラフ一つのみが描画されているはずですが、ここには何故か二つ以上の折れ線グラフがあるようにみえ、グラフB右には系列1~5までがあるように書かれています。(理想としては5個ではなく実データを示すもの一つのみ) ・ふたつのグラフの結合方法が不明 という感じです。 以下にプログラムを貼ります。 お時間ありましたら、ご指摘の程宜しくお願い致します。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Sub グラフ描画() chart_title1 = "グラフA" chart_title2 = "グラフB" '軸のタイトル x_title = "周波数[Hz]" y_title = "パワー" ' -------------------------グラフ作成---------------------- ' グラフを描画 Dim chartObj1 As ChartObject Set chartObj1 = ActiveSheet.ChartObjects.Add(1, 1, 300, 200) With chartObj1.Chart ' データ範囲をセット .SetSourceData Source:=Range(Range("B2"), _ Cells(2, 1).End(xlDown)) ' x軸の項目軸範囲をセット .SeriesCollection(1).XValues = Range(Range("A2"), _ Cells(1, 1).End(xlDown)) ' オプションをセット .ChartType = xlXYScatterSmoothNoMarkers ' 散布図 .HasTitle = True .ChartTitle.Characters.Text = chart_title .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = x_title .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = y_title ' x軸の最大値、最小値設定 .Axes(xlCategory, xlPrimary).MinimumScale = 0 .Axes(xlCategory, xlPrimary).MaximumScale = 4500 ' y軸の最大値、最小値設定 .Axes(xlValue).MinimumScale = -10 .Axes(xlValue).MaximumScale = 3 End With Dim chartObj2 As ChartObject Set chartObj2 = ActiveSheet.ChartObjects.Add(1, 320, 300, 200) With chartObj2.Chart ' データ範囲をセット .SetSourceData Source:=Range(Range("E2"), _ Cells(2, 1).End(xlDown)) ' x軸の項目軸範囲をセット .SeriesCollection(1).XValues = Range(Range("D2"), _ Cells(1, 1).End(xlDown)) ' オプションをセット .ChartType = xlXYScatterSmoothNoMarkers ' 散布図 .HasTitle = True .ChartTitle.Characters.Text = chart_title .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = x_title .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = y_title ' x軸の最大値、最小値設定 .Axes(xlCategory, xlPrimary).MinimumScale = 0 .Axes(xlCategory, xlPrimary).MaximumScale = 4500 ' y軸の最大値、最小値設定 .Axes(xlValue).MinimumScale = -10 .Axes(xlValue).MaximumScale = 3 End With End Sub ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  • Excelで3軸,4軸のグラフを出すことができますか?

    Excel97もしくは2000を使ってます。 OSはNT4.0です。 Excelの標準のグラフ昨日で2軸(両端に種類の違う値軸が出る)グラフ があると思うのですが、Excelでその軸が3軸や4軸のグラフを作ることは できるのでしょうか? もしくは、Excelでなくても、3軸/4軸で、データを元にグラフ表示できる ソフトを教えてくれるだけでも宜しいのですが。

  • Excel VBAでのグラフ

    エクセルのVBAを用いてプログラムを書いているのですが、どうしてもわからないことがあるので教えて下さい。 あるデータの時間経過(推移)の折れ線グラフを自動的にチャートシートに作図させたのですが、X軸に日付の目盛りを表示させ忘れてしまい、X軸に日付の目盛りを表示させるようにマクロを記録し、それを基に手直しをして追加プログラムを書いているのですがうまく行きません。というのは、X軸に日付の目盛りを表示させることはできたのですが、それに伴い、チャートの形が変わってしまうのです。グラフの種類は折れ線でサインカーブの様なスムーズな線が角張ったゴツゴツした感じの線になってしまいます。これってバグでしょうか? 具体的なプログラムは、Range(cells(50, 2), cells(150, 5))のデータでグラフを作成し、その後、Range(cells(50, 1), cells(150,1))の日付データをX軸に設定するといった感じで組んでいます。グラフの表示形式を変えずに、X軸の目盛りラベルのみを変更(表示)させるにはどのようにすれば良いでしょうか

専門家に質問してみよう