• 締切済み

VBA バレーボールの得点版のようなもの 再掲載

自分はVBA初心者のものです。VBAを使ってバレーボールの得点版のような、試合の流れがわかる A  B 1 2    1 3 このような物を作りたいと考えております。自分は一つのセルに+1する方法はわかるのですが、このような形のものの作り方はわからないです。詳しい方いらっしゃいましたら是非教えていただきたいです 皆さん回答ありがとうございました。加えて自分は、シート2にあるボタンを押すと、シート1の得点版に加算されるといったような形をとりたいのですが、教えてもらったコードを自分なりに書き換えても難しかったです。可能であれば教えていただきたいです

みんなの回答

  • kon555
  • ベストアンサー率51% (1844/3561)
回答No.2

 エクセルvbaの基本として、コードでシートの指定が省略されている場合、マクロ実行時のアクティブなシートに作用する、というルールがあります。  逆に言えば、各処理のシートをキッチリと指定してやれば、非アクティブなシートに対して作用させられます。 https://excel-ubara.com/excelvba4/EXCEL292.html

  • kkkkkm
  • ベストアンサー率66% (1721/2591)
回答No.1

先の質問のBAのコードにということかなとも思いましたが、他の方のコードに手を入れるわけにもいかないので、自分のやつで TestA2がA列 TestB2がB列 なのでそれぞれマクロを登録してください。 Sub TestA2() Call CountUp("A", "B") End Sub Sub TestB2() Call CountUp("B", "A") End Sub Sub CountUp(ByVal mCol1 As String, mCol2 As String) Dim LastRow1 As Long Dim LastRow2 As Long Dim mRow As Long With Sheets("シート1") LastRow1 = .Cells(Rows.Count, mCol1).End(xlUp).Row LastRow2 = .Cells(Rows.Count, mCol2).End(xlUp).Row If LastRow1 > LastRow2 Then mRow = LastRow1 Else mRow = LastRow2 End If If LastRow1 = 1 Then LastRow1 = 2 End If .Cells(mRow + 1, mCol1).Value = .Cells(LastRow1, mCol1) + 1 End With End Sub

関連するQ&A