プロが教えるわが家の防犯対策術!

現在excelで従業員の個人名簿を作成しています。
取り急ぎVBAでやりたいことは
(1)新入社員の個人票の追加
(2)在職中の従業員の個人票の内容の変更
(3)退職者の個人票を別シートにまとめる
(4)個人票のあるシートから任意の個人票を複数選んでPDFとして保存する。
現在の状況はシート1に個人票が約50人分あります。一人につき46行(1ページ)使用しています。
VBAは初心者なのですが長く勉強する時間が取れず困っています。
プログラム自体は調べれば何とかなると思うのですが、どういう構造で作ればいいのか思いつきません。
どなたか作成の上でのヒントのようなものをいただけないでしょうか?
よろしくお願いします。

A 回答 (4件)

> プログラム自体は調べれば何とかなると思う



とのことですが・・・


> どういう構造で作ればいいのか思いつきません

のなら、おそらく「何ともならない」です。
「何を調べたらいいか?」すらわからないから、こんな質問が出るわけですよね?
それなら、わかる範囲の関数だけで「もどき」を構築してやる方が速くて正確です。

例えば、

   社員番号  氏名       入社年月日  所属 ・・・
     001   何野 誰兵衛   2013/8/29   総務部
     (以下略)

という社員一覧表を作成、
表示・印刷用のシートに例の「46行」のシートを作成し、
必要項目(セル)に「社員番号でVLOOKUPするように」作ってやれば済みます。
  ※添付図参照


あるいは、「マスターに出来る白紙のシート」を作成、入力すべきセルのロックを解除。
その上でシートの保護をかけておけば項目をズラされることもありません。
Tabキーで「ロックがかかっていないセルだけ移動」も出来ますので、
運用においてはほとんど問題は出ないでしょう。
これを社員分用意し、その入力項目だけに入力してやる方が早いです。



ちなみに、
> 作成の上でのヒントのようなものをいただけないでしょうか?
ここにピンポイントで回答をするなら
「データベースと言うものについて調べましょう」
です。
「excelVBAについての質問です。」の回答画像4
    • good
    • 0
この回答へのお礼

良いアドバイスをいただき感謝いたします。勉強して頑張ってみようと思います。ありがとうございました。

お礼日時:2013/09/04 18:17

私だったら・・・



一人一行でデータを作ります。
ユーザフォームを使って各操作をします。
大きく分けて社員名が並んでいるエリアと個人票データが表示されるエリアとします。
(1)【新規】ボタンをクリックすると新規データを入力。
(2)修正したい人をダブルクリック等で選択するとその人のデータが個人票エリアに取り込まれて、それを修正する。
(3)(2)操作において退職日が入力されたらデータを退職者シートへ移動
(4)保存したい人を選んで【保存】ボタンを押したら、保存用レイアウトシートに移記してそのシートをPDF保存。

というような感じにすると思います。
    • good
    • 0

高々50人程度の話なら適当でいいんじゃないのかなあ。


1人につき46行のデータって,それなりに多いよね。これが横に長くてもいいから1行で済む程度なら1人1行にするんだけどね。データが多そうなら1人1シートにして同じ項目は同じセルになるようにしておけば処理も簡単。

印刷とかは,それこそVBAを使って印刷シートにコピーしてきれいな書式にしてやればよい。
    • good
    • 0

これは、ExcelではなくAccessを使うべきだと思いますよ。


どうしてもExcelでなくてはならない理由でもあるのでしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!