Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7278 / 13644 ツリー ←次へ | 前へ→

【40146】ひとつのシートに入力すると他のシートにも自動で入力出来るようにしたい 初心者 すう 06/7/7(金) 15:13 質問[未読]
【40150】Re:ひとつのシートに入力すると他のシート... ひげくま 06/7/7(金) 15:45 回答[未読]
【40153】Re:ひとつのシートに入力すると他のシート... ひげくま 06/7/7(金) 16:03 回答[未読]

【40146】ひとつのシートに入力すると他のシートに...
質問  初心者 すう  - 06/7/7(金) 15:13 -

引用なし
パスワード
   初めまして、こちらにお世話になるのは始めてです。よろしくお願いします。

4つのシートに入力したものが自動で又別なシートに入力出来るようにしたいのですが、
マクロの本を見てもどれをすればいいのか分からず(マクロ初心者です)困っています。

相対参照というのも試したのですが、貼付けではなく自動入力と言った形になるよう言われています。
具体的には
sheetA  aaa
sheetB    bbb
sheetC    ccc
sheetD    ddd

と入れると
sheetA゜  aaa
           aaa
sheetB゜    bbb
           bbb
sheetC゜    ccc
           ccc
sheetD゜    ddd
           ddd
になるようにしたいのですが…

どうぞよろしくお願いします

【40150】Re:ひとつのシートに入力すると他のシー...
回答  ひげくま  - 06/7/7(金) 15:45 -

引用なし
パスワード
   こんにちは。
具体例がちょっと解らなかったのですが、入力したら、全シートの同じセルが同じ値になる、というのであれば、

sheetA,sheetB,sheetC,sheetDの各シートモジュールに、

Private Sub Worksheet_Change(ByVal Target As Range)
  CopyOtherSheets Target
End Sub

と書き、

標準モジュールに、

Sub CopyOtherSheets(Ref Target As Range)
  'イベント発生禁止
  Application.EnableEvents = False

  '全シートに同じ値を書き込む
  Worksheets("sheetA").Cells(Target.row, Target.Column).Value = Target.Value
  Worksheets("sheetB").Cells(Target.row, Target.Column).Value = Target.Value
  Worksheets("sheetC").Cells(Target.row, Target.Column).Value = Target.Value
  Worksheets("sheetD").Cells(Target.row, Target.Column).Value = Target.Value

  'イベント発生許可
  Application.EnableEvents = True
End Sub

と書けば、某シートの某セルに何かを書き込むと、全シートの某セルと同じセルに同じ値が書き込まれます。

特定のセルだけそのようにしたい場合は、「全シートに同じ値を書き込む」のブロックを、Ifとかで条件分けしてください。


▼初心者 すう さん:
>初めまして、こちらにお世話になるのは始めてです。よろしくお願いします。
>
>4つのシートに入力したものが自動で又別なシートに入力出来るようにしたいのですが、
>マクロの本を見てもどれをすればいいのか分からず(マクロ初心者です)困っています。
>
>相対参照というのも試したのですが、貼付けではなく自動入力と言った形になるよう言われています。
>具体的には
>sheetA  aaa
>sheetB    bbb
>sheetC    ccc
>sheetD    ddd
>
>と入れると
>sheetA゜  aaa
>           aaa
>sheetB゜    bbb
>           bbb
>sheetC゜    ccc
>           ccc
>sheetD゜    ddd
>           ddd
>になるようにしたいのですが…
>
>どうぞよろしくお願いします

【40153】Re:ひとつのシートに入力すると他のシー...
回答  ひげくま  - 06/7/7(金) 16:03 -

引用なし
パスワード
   ちょっと解釈が違っていたようです。

sheetAの特定のセルに何かが書き込まれたら、sheetA'の特定のセルに同じ値を書き込む、ということのようですね。

であれば、

sheetAの特定のセルを、Cells(2, 4)、sheetA'の特定のセルを、Cells(4, 3)、Cells(4, 5)、とした場合、

sheetAのシートモジュールに、

Private Sub Worksheet_Change(ByVal Target As Range)
  if Target.Row = 2 And Target.Column = 4 Then
    With Worksheets("sheetB")
      .Cells(4, 3).Value = Target.Value
      .Cells(4, 5).Value = Target.Value
    End With
   End If
End Sub

という感じで書けば良いです。
sheetB,sheetC,sheetDに関しても同様に書いてください。

7278 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free