2016-05-19 19 views
0

VBAを初めて、シェイプに割り当てられたVBAマクロを持つシートがあります。同じシート上でうまく動作しますが、次のシートにシェイプをコピー&ペーストするか、新しいシェイプを作成して同じマクロを割り当てても機能しません。親切に私を助けてください。以下はコードです。すべてのシートでVBAマクロを実行する方法

ActiveSheet.Shapes("CTSnext").Fill.ForeColor.SchemeColor = Black 

ご回答ありがとうございます。

ただし、問題を説明します。私は 1名前付き4つの形状を有するシート1では

)サービス 2を取り消し)次 3)未興味 4)

そして、すべての3つの形状(2,3,4)は前景色になりますリセット白で表示されますので、目に見えません。 ユーザーが「サービスのキャンセル」をクリックすると、「次へ」が表示されます(前景色が黒に変わることを意味します)。 「次へ」をクリックすると、「興味がない」と表示されます(前景色が黒に変わることを意味します)。ユーザーが「リセット」をクリックすると、「次へ」&「興味がない」が目に見えなくなります(前景色が白に変わることを意味します)。これまではすべて正常に動作します。

ここでは、シート2に「リセット」と書かれた図形が必要です。したがって、ユーザーが同じ機能(シート1の「リセット」ボタンのVBAを意味する)が発生するはずです。

以下はコードです。キャンセル ActiveSheet.Shapes( "次へ")について

。Fill.ForeColor.SchemeColor =黒

次にActiveSheet.Shapes( "Notinterested")について。Fill.ForeColor.SchemeColor =黒

以下のための ActiveSheet.Shapes( "次")をリセットします。Fill.ForeColor.SchemeColor = 1 ActiveSheet.Shapes( "Notinterested")。Fill.ForeColor.SchemeColor = 1

私は自分自身を明らかにした期待し、また、私はドンこのページにExcelファイルを添付する方法を知っているので皆さんが私の必要性を理解するのに役立ちます。

ありがとうございます。

答えて

1

コードの行は、特定の名前付きシェイプ(CTSnext)を参照しています。用紙番号がShapes(0)の場合は、図形番号で置き換えます。
あなたは現在のシートの上にいくつかの形状があり、マクロはすべての形で実行したい場合は、あなたがiDevlopの各ワークシートをループへの答えだけでなく、それぞれの形状に続き

for each shp in ActiveSheet.Shapes 
    shp.Fill.ForeColor.SchemeColor = Black 
Next shp 
0

のようなループを使用することができます。

Dim wks as Worksheet 
For Each wks in Me.Worksheets 
    For Each shp in wks.Shapes 
     shp.Fill.ForeColor.SchemeColor = Black 
    Next shp 
Next wks 
関連する問題