こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCEL VBA教えてください

宜しくお願いいたします。
すいません式分からず丸投げでお願いです。
区分選択を作っています
A1に答えを求めるブランクセル
A2に小型、A3に中型、A3に大型が入っています
A2をクリックしたときにA1に小型と表示され
小型が表示されている状態でA3をクリックすると
中型に変わるようにしたいのです。
関数ですと誰かがデリートをクリックして消して
しまうのでVBAでお願いします。
何卒よろしくお願いします

投稿日時 - 2019-02-08 22:07:38

QNo.9585919

困ってます

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

シートモジュールに以下のコードを貼り付けてください
[シートタブ]を右クリックで出るメニューから
[コードの表示]を選択したら出てくる真っ白し画面
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Intersect(Target, Range("A2:A4")) Is Nothing Then Exit Sub
  Range("A1").Value = Target.Value
End Sub

投稿日時 - 2019-02-08 22:20:13

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

質問のしくみが、よくわからない。VBAでやれる思考状態ではない。
>小型が表示されている状態でA3をクリックすると中型に変わる
小型が表示されている状態でA3をクリックすると中型に変わる
ようにしたいのです。
A2をクリックするとどうしたいのか。
ーー
例えば、「次の型」というボタンやセルを作って、
(A1セルが)小型――クリックー中型
中型――クリックー大型
大型――クリックー小型
のように推移するものを考えているのか?
3値における、サイクリックやローテイトと言われる仕組かな?
ーー
こんな部分的なところで、小賢しい仕組みに、VBAも熟達してないとおもうが、なぜこだわるのかな。リストボックスやコンボボックスなどでストレートに、型を選択させては?

投稿日時 - 2019-02-09 13:38:01

ANo.2

>A2に小型、A3に中型、A3に大型が入っています
これは、
A2に小型、A3に中型、A4に大型が入っています
ということでいいですね?

続いて、
>A1に小型が表示されている状態で
>A3をクリックすると
>中型に変わるようにしたいのです。

これは、
 A1にA2の値が表示されている状態で
 A3をクリックすると
 A1の値がA3の値に変わるようにしたい
と理解すればいいですか?

ならば、
 A1にA2の値以外が表示されている状態で
 A3をクリックしたときに
どのような挙動とすればいいでしょうか?

また、
>誰かがデリートをクリックして消して
>しまうので
この記述は、
A1セルは直接書き換えることができないようにすることを
期待していますか?

せっかくVBAで仕込むわけですから
期待する挙動をより厳密に説明し
>丸投げでお願い
したほうがいいと思います。

投稿日時 - 2019-02-09 09:34:12

あなたにオススメの質問