- 締切済み
エクセルでのセルへ入力日の記録方法に関して
社員からの毎月の営業件数を入力と最後に入力した記録をセルの残したいのです。 A1に社員から日々の営業件数を毎日もしくは2~3日お気に件数を常に入力してもらう。 (1か月1ファイル単位で保存) B1に入力した日(入力変更が発生した日)を月日を自動で記録 という共有ファイルを考えております。 VBA関係が全然わからないので、関数でできるでしょうか? 関数もあまり知らないので、何か案があれば教えてください。 よろしくお願いします。 使用しているエクセルは2010です。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
お勧めなのは、各社員さんが記録すべき情報の一つに、「記入日」を追加することです。 それが業務なのであれば、別に皆さん、きちんと作業してくれるでしょう。何でしたら、質問者さんが記入例の 1 行でも書いておけば、皆さんそのとおりに記入できるでしょう。 当日の日付は、Ctrl+;、Ctrl+C、Ctrl+V、Ctrl+D といったショートカットキーを知っている人ならば一瞬で記入・コピーできますし、知らないとしても簡単なマウスの操作だけでコピーできるのですから、さして大きな負担とも思えません。 マクロによってご質問のことを実現するとしたら既出のご回答のとおりになるのですが、マクロはある程度、固定的な業務として確立されている作業に対して適用するのがよいでしょう。様式の変更など、Excel ファイルに何らかの修正を加えるときは、マクロのコードのメンテも考えなければならないこともあるでしょう。今のところそのシステムが、Excel にあまり詳しくない質問者さんの頭の中で思い付いただけの段階に過ぎないものなのであれば、まずは実際に、記入用の表を用意するところから始めてみてはいかがでしょう。近くに Excel に詳しそうな方がいるようなら、是非、相談しながら進めてみてください。 なお、記入する社員さんが何名くらいなのか、1 日に何行くらいのペースで記録していくのか、あるいは 1 日に紙 1 枚といったイメージなのか分かりませんが、「1か月1ファイル」という方式は、お勧めしにくいです。「1 年で 1 シートに全員分を記録」とか「数年で 1 シートに全員分を記録」という形で残しておくほうが、後から何でもできます。データがバラバラになっていてもスキルのある人ならばいろんな力技で何とかくっつけることができるかもしれませんが、少なくとも処理しやすいということはないです。
- keithin
- ベストアンサー率66% (5278/7941)
入力欄を固定して、勝手に記録が残って欲しいご相談ですね。初心者さんがよく思いつく「ヤリタイ事」ですが、基本的にエクセルはそういう使い方をするソフトではありません。 1.基本的な使い方 A列に日付列、B列に記録列として、上から順に日付とその日の記録を記入、一覧表形式で記録を羅列します 2.業務用の使い方 日報記録用紙をテンプレートとして作成し、毎回新しい記録票を立ち上げて記入、今日の名前を付けて保存します テンプレートとして保存とは、名前を付けて保存でファイルの種類をエクセルテンプレート形式にして保存することです 3.上級レベルの使い方 マクロとか、あるいはアクセスなどのソフトをバリバリ使いこなして、「記入画面(ダイアログみたいなものです)」を作成し「データ蓄積」をします。 ご相談の書き振りはこのレベルを求めていますが、正直実力は到底及んでいない状況です。こんなところで誰かにちょこちょこっと作り方を教わっても、正直実用には堪えません。 手順: シート名タブを右クリックしてコードの表示を選ぶ 現れた画面に下記をコピー貼り付ける private sub Worksheet_Change(byval Target as excel.range) if target.column <> 1 then exit sub if target.count > 1 then exit sub if target = "" then exit sub range("B1") = now end sub ファイルメニューから終了してエクセルに戻る B1セル(B列)に日付(または年月日時分)の書式設定をしておく A1セル(A列)に記入すると、B列に記入日時が自動記入される。
お礼
返信が大変遅くなってしまい申し訳ありません。 お回答を大変ありがとうございます。 試してみたところ、そのとおりに表示されました。 ありがとうございます。 お礼方々で恐縮ではございますが、もう1点質問 がございます。 入力と出力を任意のセルにしたい場合、記述の 何処をどのようにすればよろしいでしょうか? よろしくお願いします。
- aokii
- ベストアンサー率23% (5210/22062)
関数では無理です。 エクセルのシートの見出し(シート名部分)を右クリックして、コードを表示させ、その画面に、以下のマクロを貼り付ける。(データ入力完了後、名前を付けてファイルを保存) Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target.Column <> Range("A:A").Column Then Exit Sub If Target.Value = "" Then Exit Sub Target.Offset(, 1).Value = Now End Sub
お礼
返信が大変遅くなってしまい申し訳ありません。 お回答を大変ありがとうございます。 試してみたところ、そのとおりに表示されました。 ありがとうございます。 前の方と記述内容がちょっと違うのに同じように 出るのは驚きです。 お礼方々で恐縮ではございますが、もう1点質問 がございます。 入力と出力を任意のセルにしたい場合、記述の 何処をどのようにすればよろしいでしょうか? よろしくお願いします。
お礼
返信が大変遅くなってしまい申し訳ありません。 ご回答を大変ありがとうございます。