2009-08-11 13 views
1

トップにカラーキーを持つスプレッドシートがあります。ユーザーは、カラーキーに沿ってスプレッドシート内のさまざまなセルの色を手動で設定する必要があります。コピーされたセルの内部色がクリックされたセルからアクティブなセルへ

理想的には、ユーザーがスプレッドシート内の1つ以上のセルを強調表示/選択して、色を付けることができるようにすることです。次に、カラーキーセルを1回クリックするとその内部をコピーできますそれらが元々選択した細胞に色を付ける。

例:セルA17:D17を選択し、セルA2をクリックするだけで、セルA2の内部色と同じ内部色を設定します。

彼らはその後、A17の色を変更する場合がありますちょうどセルA3

をクリックして、A3と同じ色のD17は、これを行うのマクロ/カスタムファンクション/コンボボックスの方法はありますか?

何かアドバイスは非常にこれを行うには、各色のコマンドボタンを追加

よろしく、 ベン

答えて

2

をいただければ幸いです。ユーザーにセルを選択させてから、ボタンをクリックして.ColorIndexSelectionのプロパティをボタンの.ColorIndexに変更します。

+0

これは達成の非常に簡単な方法であります結果としてOPが欲しかった。ニース。いくつかの有用な情報については –

0

実際にはこれを行う組み込みの方法がありますが、ユーザーが好きかどうかはわかりません。カスタムコマンドボタンを追加してcolorIndexプロパティをコピーしないと、私はそれを知りません。

マニュアルプロセス:

  1. カラーキーを含むセルをコピーします。特別

  2. あなたに色を追加したい新しいセルをクリックし、右クリックして[貼り付け]を選択..

  3. 表示され、[OK]をクリックし、ウィンドウから[フォーマットオプション。

色、書式などは値なしでコピーされます。

1

@A。 Scagnelliのアイデアは、あなたが必要とするものをはるかに優れた実装です。カラーインデックスを変更する色のボタンがたくさんあるだけです。

なぜ前の選択を追跡するのが苦痛なのか。あなたが新しい選択をするとき、私はあなたの最後の選択が何であったかExcelが知っているとは思わない。これを回避するには、最後の各選択を覚えておくためにグローバル変数を設定します。これは素晴らしくないか、推奨されていませんが、可能です。

ワークシートには次のようなものが必要です。

Option Explicit 
Dim lastAddress As String 


Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
If lastAddress <> "" Then 
    Range(lastAddress).Formula = "Was selected before" 
    Range(lastAddress).Interior.ColorIndex = 6 
End If 

lastAddress = Target.Address 

End Sub 

NB:あなたは.Interior.ColorIndexを発射する前に、現在の選択は、あなたの色のセルの一つであるかどうかをテストする必要がありますが、私はあなたにそれを残しておきます:)

+0

+1。そしてもう一方の解決策に遅れをとっておくために。 – Gavin

関連する問題