• ベストアンサー

Excel2010 列に入力禁止の×印を

カテゴリが違っていたので変更しました。 複数列(8列で隣接していません。)あるセルに〇印が入力されていると、同じ行の他の列には入力できないように、×印を表示させる方法はありませんか。 ×印のみでセルにロックを掛けるわけではありません。〇印の列はその行では一か所のみで、固定ではなく入力される列は任意です。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! VBAになってしまいますが、一例です。 >複数列(8列で隣接していません。) とありますので、とりあえず A・C・E・G・I・K・M・O列に表示するとします。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストして 上記列に「○」を入力してみてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から Dim i As Long, j As Long, k As Long, M As Long, myArray '仮に A・C・E・G・I・K・M・O 列を指定する場合 myArray = Array(1, 3, 5, 7, 9, 11, 13, 15) '←ここで列番号を指定する。 i = Target.Row j = Target.Column For k = 0 To UBound(myArray) If j = myArray(k) Then M = M + 1 End If Next k If Selection.Count = 1 And M > 0 Then For k = 0 To UBound(myArray) If Cells(i, j) = "○" Then If j <> myArray(k) Then Cells(i, myArray(k)) = "×" End If End If Next k End If End Sub 'この行まで ※ 「○」が入力されたセル以外は「×」が表示されるだけで、入力は可能です。 外していたらごめんなさいね。m(_ _)m

noname#194986
質問者

お礼

早速回答ありがとうございます。 確認するとまったく意図するところで感謝します。ありがとうございました。 実際には次の通りですが、他の列があるので次のように記述しましたがうまくいきません。何分VBAに詳しくないのでご面倒をおかけしますがよろしくお願いします。 I M Q U Y AC AG AK myArray = Array( 9, 13, 17, 21, 25, 29, 33, 37) myArray = Array(10, 14, 18, 22, 26, 30, 34, 38) myArray = Array(11, 15, 19, 23, 27, 31, 35, 39) myArray = Array(12, 16, 20, 24, 28, 32, 36, 40)

関連するQ&A

専門家に質問してみよう