2009-06-22 4 views
0

Excelで作業しているワークブックには、VBAで設定された3Dプロパティを使用したグラフィックが使用されています。私は、ブック内の画像を変更し、そして今、Excelが、それは次のコード行のいずれかを実行できないと文句を言います:オートプロパティに3dプロパティを適用できません

Selection.ShapeRange.ThreeD.Depth = fsdoord 
Selection.ShapeRange.ThreeD.ExtrusionColor.RGB = carcol 
Selection.ShapeRange.ThreeD.PresetLightingDirection = msoLightingBottom 

生成されたエラーが

Run-time error '70': 

Permission denied 

である私はまだすべて適用することができますこの形状に対する他の特性。 3dプロパティに関連する行を実行しようとするとエラーになります。

これはなぜ起こっているのか、誰にも分かりませんか?
ありがとうございます...

答えて

0

オーケーかもしれないが、私は、ソートの問題を発見しました。イメージを置き換えたとき、元のイメージを削除し、挿入>イメージ>ファイルから新しいイメージを挿入しました。イメージを置き換えたときに元のイメージに既に適用されているオートシェイプの塗りつぶしの色を変更するだけで、それは機能しました(つまり、すべてのプロパティを保持し、塗りつぶしを変更しました)。

0

ShapeRangeは実際にシェイプのコレクションです。シェイプオブジェクトを取得するには、もう1つレベルをドリルダウンする必要があります。

Sub Example() 
    Dim ws As Excel.Worksheet 
    Dim shp As Excel.Shape 
    Set ws = Sheet1 
    Set shp = ws.Shapes(1) 
    shp.ThreeD.Depth = 10.5! 
    shp.ThreeD.ExtrusionColor.RGB = &HF08300 
    shp.ThreeD.PresetLightingDirection = msoLightingBottom 
End Sub 
Sub Example2() 
    Dim shpRng As Excel.ShapeRange 
    Dim shp As Excel.Shape 
    Set shpRng = Selection.ShapeRange 
    Set shp = shpRng.Item(1) 
    shp.ThreeD.Depth = 25.5! 
    shp.ThreeD.ExtrusionColor.RGB = &HFF0083 
    shp.ThreeD.PresetLightingDirection = msoLightingBottom 
End Sub 
+0

うん、それでも同じ問題が起こる:( –

+0

上記の貼り付けた正確なコードを使用していますか、または名前で図形を取得しようとしていますか?既に存在する名前の図形を作成しようとすると – Oorang

+0

私は自分のコードを使用しましたが、オブジェクトを参照しようとしました... ShapeRange.Item(1)... - それでも同じエラーがありました –

0

ThreeDFormatオブジェクトのヘルプページで発言あります(プロパティとして、あなたは。Excel.Shapeに適用する使用しようとしている)、それはMSDNページに繰り返されていますhere

あなたがすることはできませんいくつかの種類の図形にフォーマット の3次元を適用します。 、たとえば斜めの図形または 複数の離散的なパスです。このような形状の ThreeDFormatオブジェクトのほとんどのプロパティとメソッド は失敗します。

新しい形状は、それらのかなりsketchily定義のカテゴリのいずれかに該当するのであれば、その後、それはあなたの問題

+0

いいえ、これらのカテゴリのどちらも、その画像ではなく、画像を変更する前に正常に機能しました(画像を別の画像に置き換えただけです) –

関連する問題