• 締切済み

【VBA】 超初心者です 複数のシートに転記したい

Sub べんきょう() Worksheets(Array(1, 3)).Select Range("A1").value = 20 End Sub もしくは Sub べんきょう() Worksheets("sheet1").Select Worksheets("sheet3").Select False Range("A1").value = 20 End Sub でやってもsheet1にしか転記されないんです!! ご指導よろしくお願いします!

みんなの回答

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.5

No2、onlyromです。 超エキスパートのWendy02さんから目から鱗の回答がありました。 複数シートを選択して、それらの同じセルに処理をしたい場合はSelectionプロパティが適しているようです。 '------------------------------------ Sub 色付けの勉強() Worksheets(Array(1, 3)).Select Rows("3:3").Select Selection.Interior.ColorIndex = 3 End Sub '------------------------------------------ Sub ひとつのセルへ値代入()  Worksheets(Array(1, 3)).Select  Range("A1").Select  Selection.Value = 20 End Sub '---------------------------------- Sub 複数セルへ値代入()  Worksheets(Array(1, 3)).Select  Range("B3:C5").Select  Selection.Value = 55 End Sub 以上。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 以下のマクロは、シートごとにひとつずつ入れているわけではありません。 これは、ワークシートのひとつの機能を間接的に利用した、特殊なマクロのひとつです。 あまり、「べんきょう」というものにはなりませんし、このようなマクロは、めったに使われない、というか、使わないワザのひとつです。 'シート1,3を入れる場合 Sub べんきょう2()  Worksheets(Array(1, 3)).Select  Range("A1").Select '範囲でも可能です。  Selection.Value = 15 '数式の場合は、.Formula を使います。  Worksheets(1).Select '作業グループ解除 End Sub '全シートを入れる場合 Sub べんきょう3()  Worksheets.Select '全シートに入れる  Range("A1").Select  Selection.Value = 25  Worksheets(1).Select '作業グループ解除 End Sub

noname#79209
noname#79209
回答No.3

直接の回答ではありませんが、 VBAを使わなくても、Sheet1のセルA1のデータをShwwt2のA1と同じにしたいなら、 Sheet2のA1に「=Sheet1!$A$1」とすればよいだけです。 ご質問の例なら、Sheet1のセルA1に20と入力するだけでSheet2のA1ににも20と表示されます。

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.2

Sub べんきょう() Worksheets(Array(1, 3)).Select Range("A1").value = 20 End Sub これで説明します。 簡単の為に、Sheets(1)とSheet1は同じとする。 上記のように、Range("A1") のみではその前にシート名がないので ActiveSheetのセルA1を指定していることになるのです。 で、ActiveSheetは、1,3のどれかというと Worksheets(Array(1, 3)).Select と、1から先に指定してますから、ActiveSheetは、Sheet1 になるので、 Sheets("Sheet1").Range("A1").Value = 20 と指定したことになり、Sheet1にしか20は入らないのです。 また、同じように、 Worksheets(Array(3,1)).Select と、3から指定すると、Sheet3にのみ20が入ることになります。 要するに、質問者提示のコードは  Sub べんきょう()   Worksheets(Array(1, 3)).Select   ActiveSheet.Range("A1").value = 20 又は、   Sheets(1).Range("A1").Value = 20  End Sub と、同じことだということです。 (結論) 複数のシートを選択して同じセルに同じ値を入れたい場合は、 そのセルをアクティブにして、ActiveCellプロパティを使用しなければいけない。 で、以下のようになります。  Sub べんきょう()   Worksheets(Array(1, 3)).Select   Range("A1").Activate   ActiveCell.value = 20  End Sub 以上。  

ayako99
質問者

お礼

ありがとうございました。 単体のセルだとできたんですが 複数のセルを選択したら出来ませんでした Range("3:3").Activate ActiveCell.Interior.Color = xlNone このような選択をしたい場合はどうすればいいのでしょうか…?

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

Sub べんきょう01() Worksheets(Array(1, 3)).Select Worksheets(1).Activate Range("A1").Select ActiveCell.Value = "30" End Sub Sub べんきょう02() Worksheets("sheet1").Select Worksheets("sheet3").Select False Worksheets("sheet1").Activate Range("A1").Select ActiveCell.Value = "20" End Sub Sub べんきょう03() Worksheets(1).Range("A1").Value = "10" Worksheets(3).Range("A1").Value = "10" End Sub ではいかがでしょう?

関連するQ&A