1 人のユーザーに影響を与える厄介な問題があります。
マシンでエラーを再現できません。私が一緒に働いている他の開発者も、彼のマシンで複製できません。ただし、ユーザーのマシンでエラーを特定することはできます。MS Office 2010/PowerPoint 2010/etc で Win 7 Enterprise Version 6.1 Build 7600 を実行しています。
上の1 人のユーザに対して関連するエラーが発生します.Line.Visible = msoFalse
。エラーは次のように発生します。
Run-time error '-2147467259 (80004005)':
Method 'Visible' of object 'LineFormat' failed
Visible は明らかにシェイプの のプロパティ.Line
です。[ローカル] ウィンドウで表示できます。
エラーなしで、即時ウィンドウでこのプロパティ値を照会できます。
入力:tb.Line.Visible = msoTrue
行が表示されます (期待どおり)
入力:tb.Line.Visible = msoFalse
同じコードで「Automation Error/Unspecified error」が生成されます:
ここにいくつかのサンプルコードがあります。tb
として寸法を記入しようとしましShape
たが、これによりType 13 Mismatch
エラーが発生します。プロパティ値を0
代わりにに設定しようとしmsoFalse
ましたが、エラーは解決しません。
Sub TestCode()
Dim cht as Chart
Dim tb As Object
Set cht = ActivePresentation.Slides(1).Shapes("Chart 1").Chart
Set tb = cht.Shapes.AddTextbox(msoTextOrientationHorizontal, ptLeft, tBoxTop, ptWidth, ptHeight) 'NOTE: tb.Type = msoTextBox
tb.Select '<--- KEEP THIS LINE OTHERWISE TEXTBOX _
' ALIGNMENT WILL NOT WORK
With tb
With .TextFrame2.TextRange.Characters
.Text = "foo"
End With
.Fill.Visible = msoFalse
.Line.Visible = msoFalse
.TextFrame2.WordWrap = msoFalse
.TextFrame2.TextRange.Font.Bold = True
.TextFrame2.TextRange.ParagraphFormat.Alignment = msoAlignCenter
.TextFrame2.AutoSize = msoAutoSizeTextToFitShape
End With
End Sub
このサブルーチンは、フォームのボタン クリック イベントからマスター エラー ハンドラーにラップされるため、データが失われたり、アプリケーションがクラッシュしたりすることはありませんが、アドインが目的の方法でチャート/グラフィックを構築することを妨げます。
デフォルト.Line.Visible
は msoFalse
(問題のあるコード行をコメントアウトできるようにするため) であるため、これは特に重要ではありませんが、コードの変更と PPAM の再配布が必要になります。
なぜこれが起こっているのか、問題のある行をコメントアウトしたり、On Error Resume Next
アプローチを行ったりしないでこれを「修正」する方法があるかどうか疑問に思っています。
更新(コメントから、明確にするために)
この例は、テキスト ボックスの吹き出しの配置と書式設定を処理するために設計されたサブルーチンの 1 つです。これらはすべてmsoTextBox
、既存の図形 (例: Chart 図形) の図形コレクション内に追加されるタイプの図形です。
同様の呼び出しはすべてobject.Line.Visible = msoFalse
同じエラーで失敗します。
、それぞれが自分のマシンで同じエラーを発生させます。他の同様の呼び出し、たとえば、エラー は発生.MajorGridlines.format.Line.Visible = msoFalse
しません。