• 締切済み

マクロで出来ますか?

こんにちは。どなたか分かる方がいましたら教えてください。 sheet1のA1の数値が1ならsheet1のB1の値をsheet2のA1へコピー sheet1のA1の数値が2ならsheet1のB1の値をsheet2のA1とB1の2ヶ所へコピー sheet1のA1の数値が3ならsheet1のB1の値をsheet2のA1とB1とC1の3ヶ所へコピー という風に出来ますか?出来るのならどういうコードを書いたらいいでしょうか?

みんなの回答

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

条件分岐させれば良いのですが、本当なら Sheet2 側をクリアする処理とかも必要でしょう。 実際はどんな事をしたいのかな? Sub Test() With Worksheets("Sheet1")  Select Case .Range("A1").Value  Case 1   Worksheets("Sheet2").Range("A1") = .Range("B1").Value  Case 2   Worksheets("Sheet2").Range("A1:B1") = .Range("B1").Value  Case 3   Worksheets("Sheet2").Range("A1:C1") = .Range("B1").Value  End Select End With End Sub

  • 7_7_7
  • ベストアンサー率24% (115/469)
回答No.2

下のNo1のものですが 当たり前ながらマクロを実行させるためにコマンドボタンなどを作る必要があります。 コマンドボタンを CommandButton1 としますと Private Sub CommandButton1_Click()  If Sheet1.Range("A1") = 1 Then Sheet2.Range("A1") = sheet1.Range("B1")  If Sheet1.Range("A1") = 2 Then Sheet2.Range("A1:B1") = sheet1.Range("B1")  If Sheet1.Range("A1") = 3 Then Sheet2.Range("A1:C1") = sheet1.Range("B1") End Sub ですね

  • 7_7_7
  • ベストアンサー率24% (115/469)
回答No.1

簡単にいきますと! If Sheet1.Range("A1") = 1 Then Sheet2.Range("A1") = sheet1.Range("B1") If Sheet1.Range("A1") = 2 Then Sheet2.Range("A1:B1") = sheet1.Range("B1") If Sheet1.Range("A1") = 3 Then Sheet2.Range("A1:C1") = sheet1.Range("B1") と言った具合でも出来ますよ。