2017-04-11 13 views
0

enter image description here この問題は、chrt.HasTitle行をステップ実行するときではなく、コードを実行する場合にのみ発生します。その場合、タイトルが正しく作成され、編集することができます。グラフのタイトルを設定するのは、Excelでのデバッグ時のみです。2016


まず、関連するソースコードを示します。これには、Excel 2003と新しいバージョンとを区別するコードが含まれています(Excel 2003は '新しい'コードでクラッシュし、逆も同様です)。このコードはすべてのために完璧に働いていた2016年

chrt.SetElementの使用は、以前にこの正確な問題をバイパスし、今では同じ問題に古いchrt.HasTitle結果を使用して、バックオフィス2016であるように思わ

Sub EnableChartTitle(chrt As Chart) 
    If Application.Version = "11.0" Then 
     EnableChartTitle_2003 chrt 
    Else 
     EnableChartTitle_Post2003 chrt 
    End If 
End Sub 

Sub EnableChartTitle_2003(chrt As Chart) 
    chrt.HasTitle = True 
End Sub 

Sub EnableChartTitle_Post2003(chrt As Chart) 
    chrt.SetElement msoElementChartTitleAboveChart 
End Sub 

Office 2016までのバージョンのOfficeを使用しています。今では、意図した使用ではないコードをステップ実行しない限り、突然タイトルを使用することを拒否します。

これと修正可能なことは誰でも知っていますか? VBAは本当にこの種のもので私の神経に乗り、Googleにとっても非常に難しいです。ここThis is where I got the previous solution from.


チャートを作成するコードである:その位置が設定されている

Dim chrt As Chart 
RI.rSheet.Activate 
Set chrt = Charts.Add.Location(xlLocationAsObject, RI.rSheet.Name) 

、自動追加された系列が除去され、新しいデータがchrt.SeriesCollection.Add <range>を使用して追加されます。

注意:正確に同じコードは別のスクリプトで動作します。ここにはシリーズが1つだけ追加されているためです。シリーズ名を設定すると、自動的にタイトルが有効になります。このスクリプトでは、複数のシリーズが追加され、2番目のデータセットが追加されるとすぐに、タイトルが自動的に再び削除されます。そうすれば、もうもう一度それを有効にすることはできません。

+0

ちょうどなぜあなたはタイトルを有効にしているだけではなく、最初の場所で1つを有する、非プログラムによるソリューションを排除するには? – Absinthe

+0

すべてがプログラムによって実行されるためです。このスクリプトの目的は、手動介入なしで多くのワークブックを作成することです。私はグラフを作成する方法を示すために、質問にコードを追加しました。 – Didii

答えて

0

回答が見つかりました。彼が聞く前に何をしなければならないかをVBAに二度伝えなければなりません。コードを単に

Sub EnableChartTitle_Post2003(chrt As Chart) 
    chrt.SetElement msoElementChartTitleAboveChart 
    chrt.SetElement msoElementChartTitleAboveChart 
End Sub 

に変更するだけです。

この回答は全く満足のいくものではなかった...

関連する問題