• ベストアンサー

全く作動しないです。(転記しないです。)

Private Sub CommandButton1_Click() If CheckBox1 = xlOn Then Worksheets("sheet1").Range("A" & Rows.Count).End(xlUp).Offset(1) .Value = "新規" ElseIf CheckBox1 = xlOff Then Worksheets("sheet1").Range("A" & Rows.Count).End(xlUp).Offset(1) .Value = "リピート" End If End Sub 上記のようなコードですが、まったく作動しないです。 どこが間違っているのでしょうか。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

CheckBoxのValue値はBooleanなので、xlOn や xlOff の判定ではダメなのでは? Private Sub CommandButton1_Click() If CheckBox1.Value = True Then  Worksheets("sheet1").Range("A" & Rows.Count).End(xlUp).Offset(1).Value = "新規" Else  Worksheets("sheet1").Range("A" & Rows.Count).End(xlUp).Offset(1).Value = "リピート" End If End Sub

その他の回答 (3)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.4

動かない理由は#02さんの回答通りだと思います。 それ以外に気になった点を一つ。  Rows.Count これはオブジェクトが明示されていませんね。するとActivesheetが対象になります。Worksheets("sheet1")が常にアクティブなら意図しない動作はしないかもしれませんが、やはり明示する方が良いでしょう Private Sub CommandButton1_Click()  With Worksheets("sheet1")   If CheckBox1 = True Then    .Range("A" & .Rows.Count).End(xlUp).Offset(1).Value = "新規"   Else    .Range("A" & .Rows.Count).End(xlUp).Offset(1).Value = "リピート"    End If  End With End Sub もっともRows.CountはOffice2003までは65536で固定値なので  .Range("A65536") と書いてしまっても同じことですが…

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

2点 (1)xlOnで聞くのか チェックボックスを1つ張り付け クリックイベントに Private Sub CheckBox1_Click() MsgBox CheckBox1.Value End Sub をいれて、チェックボックスを、クリックすればわかる。 ーー Sub test01() a = 4 If a = 2 Then MsgBox a ElseIf a = 1 Then MsgBox a End If End Sub で aを1,2、3・に変えて実行してみると、正常に動いた。 ーー ただし 普通は 2区分で聞くときは Sub test02() a = 1 If a = 1 Then MsgBox "1" Else MsgBox "1以外" End If End Sub とElseでよいと思う。

  • x0000x
  • ベストアンサー率52% (67/127)
回答No.1

CheckBox1は「True」「False」の値を保持するので以下で判断できます。 Private Sub CommandButton1_Click() If CheckBox1 Then Worksheets("sheet1").Range("A" & Rows.Count).End(xlUp).Offset(1).Value = "新規" ElseIf Not CheckBox1 Then Worksheets("sheet1").Range("A" & Rows.Count).End(xlUp).Offset(1).Value = "リピート" End If End Sub

m_boy
質問者

補足

ご意見有難うございます。 動作はするのですが、両方ともチェックが入ってしまいます。

関連するQ&A

専門家に質問してみよう