2017-05-17 6 views
0

非常に単純なExcelマクロをOffice 2013で作成しようとしています。マクロでx軸とy軸のタイトルが付いた折れ線グラフが作成されます。私は "開発者"タブに移動し、 "マクロの記録"を選択します。私は自分のチャートを作成し、すべてがうまく見えます。私は、自動生成されたVBAコードを表示すると、それは次のようになります。Excel 2013自動生成マクロマクロを実行しようとするとVBAコードが機能しない

Sub SimplePlotExample() 
    Range("A1:B11").Select 
    ActiveSheet.Shapes.AddChart2(332, xlLineMarkers).Select 
    ActiveChart.SetSourceData Source:=Range("Sheet1!$A$1:$B$11") 
    ActiveChart.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis) 
    Selection.Caption = "This is my rows title" 
    ActiveChart.SetElement (msoElementPrimaryValueAxisTitleAdjacentToAxis) 
    Selection.Caption = "This is my y axis title" 
    Range("A1").Select 
End Sub 

問題は、私は、このマクロを実行しようとすると、y軸のタイトルが作成されないということで、代わりにx軸を持っていますy軸のタイトル。私が直接VBAコードに入る場合は、 "Selection.Caption ="これは私のy軸のタイトルです "という行をコメントアウトして、以下のようにコードを手動で置き換えてください。

Sub SimplePlotExample() 
    Range("A1:B11").Select 
     ActiveSheet.Shapes.AddChart2(332, xlLineMarkers).Select 
     ActiveChart.SetSourceData Source:=Range("Sheet1!$A$1:$B$11") 
     ActiveChart.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis) 
     Selection.Caption = "This is my rows title" 
     ActiveChart.SetElement (msoElementPrimaryValueAxisTitleAdjacentToAxis) 
    ' Add the 2 lines of code below manually to my macro code 
     ActiveChart.Axes(xlValue, xlPrimary).HasTitle = True 
     ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Text = "This is my hand-edited y axis title" 
    ' Selection.Caption = "This is my y axis title" ### This is the auto-generated line commented out 
     Range("A1").Select 
    End Sub 

私の質問は.....「自動生成された」VBAコードが正しく機能しないのはなぜですか? Excelの過去のバージョンで問題が発生している可能性があることを示す他のスレッドが見つかりました。これもExcel 2013の問題であると推測していますか?私はMicrosoft Office Professional Plus 2013を使用しています。

ありがとう!

+1

Stack Overflowのメリットは、ユーザーが特定の問題を解決し、同じ問題が発生しているユーザーからの質問に結びついて、簡単に貴重な回答を見つけることです。タイトルを検索可能なものに編集してください。 –

+0

^^はい、私は質問を見ました。「うーん、誰かがVBAでExcelマクロを作成することに問題があります。それは奇妙です。何ができないのだろうか」と質問し、それは完全に無関係でした。 – YowE3K

答えて

0

新しいシートで試してみてください。

Sub SimplePlotExample() 
    Range("A1:B11").Select 
    ActiveSheet.Shapes.AddChart2(332, xlLineMarkers).Select 
    ActiveChart.SetSourceData Source:=Range("Sheet1!$A$1:$B$11") 
    With ActiveChart 
    'chart name 
    .HasTitle = True 
    .ChartTitle.Characters.Text = "Chart Name" 
    'X axis name 
    .Axes(xlCategory, xlPrimary).HasTitle = True 
    .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "This is my X-Axis" 
    'y-axis name 
    .Axes(xlValue, xlPrimary).HasTitle = True 
    .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "This is my Y axis title" 
End With 
End Sub 
+2

おそらく、あなたはこれがどのように答えているのかを詳しく調べることができます。*なぜ "自動生成" VBAコードが正しく動作しないのですか?* – pnuts

+0

問題を修正します。あなたはもっと精巧に何を必要としていますか?私のコードとOPコードの違いは、それが機能していなかった理由です。 –

+0

申し訳ありませんが、おそらく私は詳しく説明する必要があります。私の目標は、非SWエンジニアが使用できるユーティリティを作成することです。これらのエンジニアは、ユーティリティを使用して独自のマクロを作成し、ベースコードを使用してそれらを実行することができます。彼らはVBAに精通していないので、私はマクロを作成するために "自動生成" ExcelマクロVBAコードを使用できることを願っています。問題は、明らかに、自動生成されたコードが正しく動作するとは限らず、なぜその理由がわからないということです。おそらくそれは私が正しくない設定ですか?いくつかの他の簡単に修正する問題?ありがとう。 – XcvrTester

関連する問題