• ベストアンサー

マクロでタイムレコーダーを作りたいのですが・・

マクロを使ってタイムレコーダーを作っています (マクロの勉強用です) ユーザーフォームで社員コードを入力し、出社をクリックすると エクセルシートに記録されるようにしたいのですが、どのように書けばいいか わかりません。 フォームにテキストボックスを作り、下に出社ボタンを作りました。 テキストボックスに数字を入力し、出社ボタンを押すというのが手順 なのですが、 社員コードから「どこに出社時刻を入力すればよいか」を判断させ、 ボタンを押した時刻を入力できるようにしたいです。 手順として、社員コードを入力し、出社ボタンを押すと、エクセルシートを 検索し、合致する社員コードを見つけ、見つかったらそこの列の今日の日付の 部分に時刻を入力・・となるのかな?と思うのですが。。 はっきりいってさっぱりです。。ご存知の方、ご教授ください。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

例データ Sheet1 A1:D6 社員名 社員番号 2005/10/1 2005/10/2 大山 1 小山 2 植山 3 小阪 4 中坂 6 なおE1より右に日付をオートフィルする。今日は10月13日なので 10月13日以上まで用意してテストすること。 Sheet2 テキストボックス1個 コマンドボタン1こ貼り付ける。 フォームにはりつけるのも1つの方法。 コマンドボタンをダブルクリックして出てくる Private Sub CommandButton1_Click() End Sub の間に Private Sub CommandButton1_Click() sc = TextBox1.Text i = Worksheets("Sheet1").Range("B1:B6").Find(What:=sc).Row j = Worksheets("Sheet1").Range("C1:z1").Find(What:=Date).Column MsgBox Worksheets("Sheet1").Cells(i, 1) & " 出勤 ・ 時刻 " & Time Worksheets("Sheet1").Cells(i, j) = Time End Subを貼り付ける。 テキストボックスに職員番号を入れて、コマンドボタンをクリックすると 職員の行、日付の列のクロスするセルに、時刻が入ります。 見つからない職員番号を入れたときの処理は、略します。

その他の回答 (1)

  • bakerata
  • ベストアンサー率0% (0/1)
回答No.1

こんな感じじゃダメですか? Cells(1, 1) = Now() セル位置は別に求めて下さいね。

関連するQ&A

  • エクセルで勤怠管理をしたい

    エクセルで、勤怠管理(タイムカード)を作りたいと思ってます。 具体的には、テキストボックスを貼り、その中にあらかじめ登録しておいた社員コード(例:000123)を入力し、コマンドボタン(例:出社、休憩入、休憩出、退社など)を押すと、社員名(個人)別にその日の出社時刻などが自動登録(月別一覧表)されるみたいなマクロを作りたいのです。 社員名別一覧の形式は、  B1に出社時刻 C1に退社時刻 D1に休憩入 E1に休憩出 A2以下に日付を入れる。  このようなものが、エクセルでできるのなら教えてください。

  • エクセル/マクロ ユーザーフォーム内のテキストボックスの値の制限

    エクセルマクロに関する質問です。ユーザーフォーム内にテキストボックス(DayBox1)とスピンボタン(DaySpin1)を設置し、日付を入力できるようにしたいと思っています。スピンボタンには以下のようなコードを与えました。 Private Sub DaySpin1_Change() DayBox1.Value = Day(Now()) + DaySpin1.Value End Sub テキストボックス内の値が現実的な値(1≦DayBox1.Value≦31)に収まるようにするにはどのようなコードを与えるべきでしょうか? よろしくお願いします。

  • エクセル マクロ フォームに転記したい

    (1)エクセルSheet1にボタンをクリックするとフォームを出てくる。(2)そのフォームは、転記する専用のフォーム。(3)転記フォームの中にボタンを作り、新しいフォームが出てくる。(4)コンボボックスに表示した文字を転記フォームのテキストボックスに転記したい。 この様なことは出来ますか? マクロの記述を教えてください。

  • エクセルで打刻(タイムレコーダ)

    教えてください。 現在業務管理のためエクセルを使用しています。 タイムレコーダ(打刻ボタン・・・出社/退社)も同シートにはめ込みたいのですが プログラムを作成するしか方法はないでしょうか? 希望は、「出社」「退社」の打刻ボタンがあり ボタンを押すと、その日の出社/退社欄に時刻が入力されるような感じです。 よろしくお願いいたします。

  • マクロ フォームでのチェックボックスについて

    教えてください。 1)フォームでテキストボックス2つ、ボタンで新しい入力フォーム表示 2)入力フォームでチェックボックス6個、コンボボックス6個を作ります。 3)チェックボックスにチェック(1個のみ)したら、1)のフォームのテキストボックスにチェックされた、項目とコンボボックスで選択された内容が転記したい。 例)果物にチェック、コンボでブドウと選択  テキストボックス→果物 ブドウ というようにフォームに転記させたい。 以前、シートでのマクロを教えていただきましたが、フォームだと頭が混乱してしまいました。 簡単で良いので、マクロの記述を教えてください。

  • エクセルVBAマクロで、一度テキストポックスに入力した値がコピーされて

    エクセルVBAマクロで、一度テキストポックスに入力した値がコピーされてしまう VBAマクロ初心者です。 エクセルVBAマクロで、以下の様なプログラムを作成し計算させていますが、 一度入力した値がテキストポックスに残ってしまい、なんとかならないかなと 思っています。 (1)複数シートにそれぞれコマンドボタンを配置し、クリックすると同じユーザー フォームが立ち上がるようになっています。 (2)そのユーザーフォーム内に、テキストボックスが複数あり、それぞれ値を入力 して計算スタートさせると、ワークシートの1行目から数千行目まで計算して 各行に計算結果を表示します。 (計算は、既に各行に入力済みのデータとこのテキストボックスの値を元に算出されます) (3)次に、別のシートでコマンドボタンをクリックし、ユーザーフォームを立ち上げると、 前のシートで入力した値がそのまま各テキストボックスに入ってしまいます。 (これは、必ず起こる訳ではなく、時々起こるのですが、起こる場合は、コマンドボタン をクリックしてからユーザーフォームが立ち上がるまでの時間が若干短い感じがします) ※一度、上記の計算をさせるとテキストボックスの値がそのシートの特定のセルに入り、 次回ユーザーフォームを立ち上げた際に、テキストボックスに入るようになっています。 (Private Sub UserForm Initialize を使っています) パソコンの構造を、私はよく知らないのですが、おそらく、一度テキストボックスに値 を入力して計算させると、どこかのメモリにそれが残っていて、次にユーザーフォーム を立ち上げた際にそれが入ってしまうのかな、と思っています。 (ただし、もし前の値が入ってしまったとしても、一度そのユーザーフォームを消して から、再度立ち上げると、正常な値(そのシートの特定のセルを参照)が必ず入ります) 何か、プログラムにより、このメモリ?を消す?、あるいはうまく解決する方法など 考えられませんでしょうか? もし、詳しい方がおられましたら、御教示いただけませんでしょうか。 よろしくお願いいたします。

  • コンボボックスの入力表示の消去

    アドバイスをお願いします。 [知りたいこと] 検索ボックス(コンボボックス)で検索した値を合致フォーム(フォーム)で開くとき、一緒に検索ボックス(コンボボックス)の値(入力表示)もクリアにしたい。 [セット条件] ・コンボボックス名:検索ボックス ・検索結果フォーム名:合致フォーム ・合致フォームを開くコマンドボタン名:開くボタン [お願い] 現在は、コマンドボタンをイベントのマクロでフォームを開くで設定している。コマンドボタンでフォームを開く設定をコードビルダで記述するスキルがない為、マクロで可能でしたらマクロで教えていただけませんでしょうか。マクロがダメなときはコードビルダでお願いします。勉強しますので。 以上ですが、宜しくお願いします。

  • テキストボックスへにセル値の入力

    エクセルマクロの初心者で恐縮なのですが、ユーザーフォームのテキストボックスに下記のようなことは可能でしょうか? 例1)ユーザーフォーム上にある「テキストボックス」に「オプションボタン1」を選択するとワークシートのセル値を入力(反映)することは可能でしょうか? 例2)次に、「オプションボタン2」を選択すると、例1でテキストボックスに入力(反映)した値を消去し、かつ、このテキストボックスに数値を直接入力したら、ワークシートの別セルに入力した数値が反映されるようにすることは可能でしょうか? 例1・2)についてどのようなマクロを組めばよいのでしょうか? マクロにお詳しい方、大変申し訳ございませんか、ご指導お願いいたします。

  • エクセルマクロによる顧客リスト検索

     エクセルで作成している顧客リストの検索をするマクロを作成したいと考えています。具体的には、ユーザーフォームに顧客名・勤務先・役職のテキストボックスを作り、顧客名を入力してコマンドボタンを押すと勤務先などがテキストボックスに表示されるものを作ろうとしています。  ユーザーフォームにテキストボックスやコマンドボタンを作る方法はわかりましたが、それらを顧客リストと結び付ける方法がわかりません。ネットで「エクセルマクロ講座」を探してみましたが、こうした事例にあてはまる講座もみつかりませんでした。  どなたかマクロに詳しい方は教えていただけないでしょうか。あるは上記の事例にあてはまるエクセルマクロの講座がWeb上にあれば、それを教えていただけないでしょうか。

  • ユーザフォーム(VBA)で入力した内容をシートへコピーするには

    ユーザフォーム(VBA)でテキストボックスとボタンを作成しました。 このテキストボックスに入力した内容をボタンを押すことでシート1のA1セルにコピーしたいのです。こんな簡単な感じなのですが、 プログラムはどのようにしたらよいのでしょうか?教えてください。 それと、このエクセルファイルを開き、マクロを有効にするのボタンを押すと思うのですが、そのときにすでにユーザフォームが表示されているようにしたいのですが・・・どうすればいいのでしょうか? ※できたらでよいのですが、もう一つボタンを作成し『クリア』ボタンということで、テキストボックスに入力した内容だけをクリアさせるボタンも作ろうとおもうのですが、それはどうしたらよいのでしょうか? 困っています。教えてください。

専門家に質問してみよう