こんにちは。どなたか分かる方がいましたら教えてください。
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ヶ所へコピー
という風に出来ますか?出来るのならどういうコードを書いたらいいでしょうか?

A 回答 (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
    • good
    • 0

下の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

ですね
    • good
    • 0

簡単にいきますと!



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")

と言った具合でも出来ますよ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このカテゴリの人気Q&Aランキング