2017-05-10 5 views
0

ChartObjectsとブックの配置プロパティをすべて変更しようとしています。ブック内のすべてのシートの配置プロパティを変更します

cht.Select 

はコードの下に見つけてください:

は、しかし、私は

は形状がこのラインに選択

のためにロックされている要求されたエラーランタイムを取得しています

Sub LoopThroughCharts() 
'PURPOSE: Loop through every object in the active workbook 

Dim sht As Worksheet 
Dim CurrentSheet As Worksheet 
Dim cht As ChartObject 
Dim shp As Shape 

Application.ScreenUpdating = False 
Application.EnableEvents = False 

Set CurrentSheet = ActiveSheet 
'Retrieve Input from User 
PropertyOption = Application.InputBox("Change Everything To What Placement Property?" & _ 
"(Must be 1, 2, or 3)" & vbCr & vbCr & " [1] Move and Size with Cells" & vbCr & _ 
" [2] Move but Don't Size with Cells" & vbCr & " [3] Don't Move or Size with Cells" & _ 
vbCr & " ", Type:=1, Title:="Placement Property For All") 

'Handle If User Cancels 
If PropertyOption = 0 Then Exit Sub 

For Each sht In ActiveWorkbook.Worksheets 
    For Each cht In sht.ChartObjects 
     If cht.Visible = True Then 
      cht.Select 
      cht.Placement = PropertyOption 
      'Do something with the chart... 
     End If 
    Next cht 
Next sht 

For Each sht In ActiveWorkbook.Worksheets 
    For Each shp In sht.Shapes 
     If shp.Visible = True Then 
      shp.Select 
      shp.Placement = PropertyOption 
     End If 
    Next shp 
Next sht 

Application.EnableEvents = True 

End Sub 
+0

あなたは、いくつかの保護されたワークシートを持っている必要があります。保護されたワークシートで形状を選択または操作することはできません。 –

答えて

1

Chtのプロパティを変更するには、Selectを入力する必要はありません。

プロパティまたは値を変更するには、SelectまたはActivateにする必要はほとんどありません。「実行する」と思うのは、コードの実行時間が遅くなることだけです。

ちょうど使用:

For Each Sht In ActiveWorkbook.Worksheets 
    For Each Cht In Sht.ChartObjects 
     If Cht.Visible = True Then 
      Cht.Placement = PropertyOption 
      'Do something with the chart... 
     End If 
    Next Cht 
Next Sht 
+1

シートが保護されていると思われる場合は、プレースメントを変更できません。 –

+0

その作業は今、ありがとう。私はそれをすべてのワークシートに適用したくないのですが、選択したワークシートはほんの少しです。選択したシートが異なるため、ワークシートの名前を指定できないので、コードをどのように修正すればい​​いですか? – Stacey

+0

@Staceyシートをループして、どのシートが「選択済み」であるかを確認する必要があります - 私はそれが優れた新しい**だと思います**投稿** –

関連する問題