- ベストアンサー
【エクセル2003】セルの値を0→1→2→3→0と変えるボタンを作りたい。
いつもお世話になってます。 シート上にボタンを設置し、以下のようなマクロを登録したいのですが、 どのように記述しればよいのでしょうか? ボタンを押すと、セルA1の値がゼロから1に変わる。 もう一度押すと、同セルの値が1から2に変わる。 さらにもう一度押すと、同セルの値が2から3に変わる。 もう一度押すと、3から0に戻る。 ご教示のほどよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
他にも色々な方法がありますね。 ・Select Case 使用 Private Sub CommandButton1_Click() Dim A1Value 'セル内容を一旦変数に格納 A1Value = ActiveSheet.Cells(1, 1).Value '変数に格納された内容により処理を行う Select Case A1Value Case 1 A1Value = 2 Case 2 A1Value = 3 Case 3 A1Value = 0 Case 0 A1Value = 1 End Select '変数に格納された変更を A1 セルに反映 ActiveSheet.Cells(1, 1).Value = A1Value End Sub ・If ~ ElseIf 使用 Private Sub CommandButton1_Click() Dim AVal AVal = ActiveSheet.Cells(1, 1).Value If AVal = 0 Then AVal = 1 ElseIf AVal = 1 Then AVal = 2 ElseIf AVal = 2 Then AVal = 3 ElseIf AVal = 3 Then AVal = 0 End If ActiveSheet.Cells(1, 1).Value = AVal End Sub ・If 使用手抜き版 Private Sub CommandButton1_Click() If ActiveSheet.Cells(1, 1).Value = 0 Then ActiveSheet.Cells(1, 1).Value = 1: Exit Sub If ActiveSheet.Cells(1, 1).Value = 1 Then ActiveSheet.Cells(1, 1).Value = 2: Exit Sub If ActiveSheet.Cells(1, 1).Value = 2 Then ActiveSheet.Cells(1, 1).Value = 3: Exit Sub If ActiveSheet.Cells(1, 1).Value = 3 Then ActiveSheet.Cells(1, 1).Value = 0: Exit Sub End Sub 共通事項: セルに何も入力されていない場合、ゼロと判断します。 0, 1, 2, 3 以外の数値/文字列などが入力されていた場合は何もおきません。 --- VBA で、となるとこれ以外にも方法はいろいろ考えられます。 やり方が無駄だとか回りくどいとかは置いといて、いろんな方法を考えて試してみると楽しいかもしれませんし、そういう「無駄」が理解を深める手助けになる...かもしれません。
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 一応、A1 の数字チェックを入れても、こういう式を入れてあげればよいと思います。 Private Sub CommandButton1_Click() If IsNumeric(Range("A1")) Then Range("A1").Value = (Range("A1").Value + 1) Mod 4 End If End Sub
お礼
ご丁寧にありがとうございます。明日、職場で試してみます。
補足
みなさまありがとうございました。 希望通りのものが作れました。 H20.2.13
- uturogi_k
- ベストアンサー率37% (6/16)
こんにちわ これで可能かと思われます。 Private Sub CommandButton1_Click() 'A1のセルが最大値である3であった場合 If Sheet1.Cells(1, 1) = 3 Then 'セルの内容を初期化 Sheet1.Cells(1, 1) = 0 '3以外の場合 Else Sheet1.Cells(1, 1) = Sheet1.Cells(1, 1) + 1 End If End Sub
お礼
返事が遅くなってすみません。 明日、職場にて試してみます。ありがとうございました。
お礼
勉強になりました。 >そういう「無駄」が理解を深める手助けになる...かもしれません。 そうですね。本当にそう思えます。こちらにカテゴリーの方には本当にお世話になってます。ありがとうございます。