3 つのセル (A1、A2、A3) がある列があります。3 つのセルのいずれかを増減しても、3 つのセルの合計数値が一定のままになるようにしたいです。つまり、いずれかのセルの増減が他の 2 つのセルに均等に分配される必要があります。たとえば、3 + 5 + 2 = 10 から始めます。5 を 6 に変更すると、自動的に 2.5 + 6 + 1.5 = 10 になります。実際には、定数 100 に等しくしたいセルが約 20 個あることに注意してください。どうもありがとうございます。
答え1
埋めるA1を通してA20合計すると100:
次に、次のものを配置しますイベントマクロワークシートのコード領域で:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, Delta As Double
Set rng = Range("A1:A20")
If Intersect(Target, rng) Is Nothing Then Exit Sub
Delta = (100 - Range("A21").Value) / 19
Application.EnableEvents = False
For Each r In rng
If r.Address <> Target.Address Then
r.Value = r.Value + Delta
End If
Next r
Application.EnableEvents = True
End Sub
マクロがインストールされてアクティブになると、以下の値の変更が検出されます。A1を通してA20100 を維持するように他の値を調整します。一度に 1 つのセルのみを変更します。
ワークシート コードなので、インストールが非常に簡単で、自動的に使用できます。
- Excelウィンドウの下部にあるタブ名を右クリックします
- 「コードの表示」を選択すると、VBEウィンドウが表示されます。
- 内容を貼り付けてVBEウィンドウを閉じます
不安な点があれば、まずはトライアルシートで試してみてください。
ワークブックを保存すると、マクロも一緒に保存されます。2003 以降のバージョンの Excel を使用している場合は、ファイルを .xlsx ではなく .xlsm として保存する必要があります。
マクロを削除するには:
- 上記のようにVBEウィンドウを表示します
- コードを消去する
- VBEウィンドウを閉じる
マクロ全般の詳細については、以下を参照してください。
http://www.mvps.org/dmcritchie/excel/getstarted.htm
そして
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
イベント マクロ (ワークシート コード) の詳細については、以下を参照してください。
http://www.mvps.org/dmcritchie/excel/event.htm
これを機能させるにはマクロを有効にする必要があります。