• ベストアンサー

一番左のシートのセルA6の値を他の複数のシートに複写する

VIsta SP1 ExcelXP でマクロ勉強中の超初心者です。 一番左のシートSheet(1)のセルA6に、日付を入力しています。この日付の値を他の複数のシートに入力したいです。そして、Sheet(1)のセルA6の日付が変更されたときでも、その変更後の日付を、表示したいです。IF文で、自分なりにつくると、循環参照になってしまいます。 この場合のIF文はどう作ったらよろしいでしょうか。

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

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.3

>1)必ず一番左のシートを使います。その会社名シートのA6に日付を入れます。 2)一番左のシートが削除されたとき、エラーが発生しないようにしたいです。 マクロ作成のための前提条件が提示されたみたいなので、サンプルを作ってみました。 一番左のシートの値を他のシートすべてに記入します。 Sub test() Dim i As Integer For i = 2 To Worksheets.Count With Worksheets(i) .Range("A6") = Worksheets(1).Range("A6").Value End With Next End Sub 日付の書き換えに対応させるには、それなりの工夫が必要ですし、削除する可能性のあるシートだとその都度該当するマクロを記入する必要があります。 http://www.excel.studio-kazu.jp/mag2/backnumber/mm20040727.html

aitaine
質問者

お礼

ありがとうございました。おかげさまで、実行できました。

その他の回答 (2)

回答No.2

これじゃダメなの? 複数のシートって? どれくらいですか? シート名は決まってますか? Sub 日付貼付() Sheets("Sheet1").Select Range("A6").Select Selection.Copy Sheets("Sheet2").Select Range("A6").Select Selection.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False End Sub

aitaine
質問者

補足

1)シート名は会社名になっており、10枚ほどあります。必ず一番左のシートを使います。その会社名シートのA6に日付を入れます。 2)一番左のシートが削除されたとき、エラーが発生しないようにしたいです。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

日付を表示したいセルに、=[Book1]Sheet1!$A$6 のような式を入れて置けばマクロを使わなくても更新できますけけど・・・。 >IF文で、自分なりにつくると、 なぜIF文なのか解りません。 マクロでやるなら記録マクロで簡単に出来ます。

aitaine
質問者

補足

日付を表示したいセルに、=[Book1]Sheet1!$A$6 のような式はすでにいれてありますが、これを修正したいです。シート数が増減しますので手入力が面倒なので、マクロで作成したいです。

関連するQ&A