質問 |
||
| 質問者:norimaki-h | 表による体積の計算 | |
|---|---|---|
困り度:
|
A B C D E F G H 1 延長 縦1 縦2 縦3 横1 横2 横3 2 四角 3 3 1 3 台形 4 4 2 3 4 四角−四角 5 5 2 4 1 このようなデ−タシ−トを作成することにあたり A列に四角と入力した場合C1、F1のみにセルの移動の仕方を教えてください。 尚、台形及び四角−四角(くりぬき)同様にお願いします。 エクセル2003です。 |
|
質問投稿日時:08/07/03 15:27 質問番号:4148351 |
||
回答 |
|
| 回答者:mitarashi | タイトルを工夫されないと、素通りしてしまう回答者さんが多いかも。 色々方法は考えられますが、マクロで、非保護セルしか選択できないようにする方法で実現してみました。シートモジュールに記述してください。 なお、A列及び、他のエリアで操作したいセルはあらかじめロックを外しておかないと、操作不能となります。なお、コードの解説はいたしかねますのであしからず。(当方XL2000) (注)当該シートがactiveになったとき、セルの移動に制限をかけていますので、下記コードを記述後、一旦他のシートを選択して、戻らないと、制限が有効にならないかもしれません。 Private Sub Worksheet_Activate() Me.EnableSelection = xlUnlockedCells End Sub Private Sub Worksheet_Change(ByVal target As Range) If target.Cells.Count > 1 Then Exit Sub If Intersect(target, ActiveSheet.Columns("a:a")) Is Nothing Then Exit Sub Select Case target.Text Case "四角" Call lockCell(target, 1, 2, 4) Case "台形" Call lockCell(target, 1, 2, 4, 5) Case "四角−四角" Call lockCell(target, 1, 2, 3, 4, 5) End Select End Sub Private Sub lockCell(ParamArray args() As Variant) Dim target As Range Dim i As Long Me.Unprotect Set target = args(0) target.Offset(0, 1).Resize(1, 7).Locked = True For i = 1 To UBound(args) target.Offset(0, args(i)).Locked = False Next i Me.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub <念のため、シートモジュールへの貼り付け方> ALT+F11でVBE画面に切り替え、たいてい左上にあるプロジェクト-VBA Projectというフレーム?で、Sheet1(例えば)をWクリックし、右側に表示されるメインの広いフレームに貼り付けて下さい。 |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/07/03 22:53 回答番号:No.1 |
|
| この回答へのお礼 | タイトルの工夫に関してご指摘ありがとうございました。 今後、工夫します。 上記のマクロを試してみます。 ありがとうございました。 |