- ベストアンサー
エクセルで入力用の場所に入力したら、入力内容が人ごとに反映される方法
入力用のシートを1つ用意して、その表の中の項目を入力したら、内容が他のシートに反映される方法ってありますか? 例えば、社員Aの社員番号が001で、 社員番号を入力したら、その人のシートに 次々に情報が入力されていくっていうことはできるのでしょうか?? すごく分かりにくい質問ですみません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2のmatsu_junです。 >使用しているのが、エクセル97と古いからでしょうか?? おそらくそうだと思います。手元に97が無いので確認が取れませんが、私が以前に回答した手順は参考になりませんでしょうか。下の参考URLより、#5をご覧ください。 また、先の回答ではシート名を間違えるとExcelの再立ち上げが必要になります。一応下に再立ち上げが不要なように改良しておきました。こちらをご利用ください。 Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ERREND Application.EnableEvents = False If Target.Address <> "$A$1" And Range("A1").Value <> Empty Then Sh_Nam$ = CStr(Range("A1").Value) Worksheets(Sh_Nam).Cells(Target.Row, Target.Column).Value = Target.Value End If Application.EnableEvents = True Exit Sub ERREND: MsgBox Error(Err.Number) Application.EnableEvents = True End Sub
その他の回答 (2)
- matsu_jun
- ベストアンサー率55% (146/265)
頂いた情報だけではきちんとしたものは作れませんが、取り合えず以下のような動きをするマクロを作ってみましたので、よろしければご利用ください。 1) まず、入力用シートの他に、社員番号の名前のついたシートを用意します。 2) 入力用シートのセルA1に社員番号を入力します。 3) 入力用シートのその他のセルに値を入力、もしくは値を変更すると、 先に入力した社員番号のシートの同じ位置のセルに値が反映されます。 4) 入力用シートのセルA1が空欄の時は、他のセルに値を入力しても変化しません。 以下のソースを、入力用シートのオブジェクトとして挿入します。 'ここから------------------------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Address <> "$A$1" And Range("A1").Value <> Empty Then Sh_Nam$ = CStr(Range("A1").Value) Worksheets(Sh_Nam).Cells(Target.Row, Target.Column).Value = Target.Value End If Application.EnableEvents = True End Sub 'ここまで------------------------------------------------------------- 社員番号を入力するセル位置を変更したい場合は、上のソースの3行目に2箇所書かれているアドレスと、 4行目に1箇所書かれているアドレスを変更してください。 最初のアドレスだけは絶対参照です。「$」は消去しないでください。 貼り付け方が分からない場合は、以下の説明をお読みください。 1) Excelの入力用シート(シート名はお好きなもので結構です)のタブを右クリックします。 2) 出てきたメニューから、「コードの表示(V)」を選択します。 3) 起動されたMicrosoft Visual Basicの右側の白い部分に上のソースをコピーして貼り付けます。 4) Visual Basic を終了します。 以上ですが、残念ながら、複数のセルを選択して一括で編集には対応していないと思います。また、社員番号が001というように0から始まる場合は、入力セルの書式を注意しておかないといけませんね。いっそのこと社員番号の入力セルをリストにして選択させたほうがいいかもしれません。 さらに情報があれば、もう少しスマートなものになるとは思いますが、上のものでも結構利用できるのではないでしょうか。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
単純に参照で反映するとすると、 入力シートが再利用できないので、 入力が終わった時点で、マクロを起動して、 入力されている社員番号でその人のシートに転記するというような感じになると思います。
お礼
ありがとうございます。
お礼
とてもご丁寧な回答ありがとうございます。 しかも、マクロまで作っていただいて、 感動しました。 早速貼り付け作業にかかろうとしてみたのですが、 2)の所でつまづいてしまい、うまくいきません。 「コードの表示(V)」というのが、見当たらないのです。 使用しているのが、エクセル97と古いからでしょうか??