- ベストアンサー
エクセルでこのような事できますか?
エクセル初心者で全然分らないので教えてください。例えば来館者を時間ごとにカウントしていきたいのですが・・・そのカウントをエクセルの表で表す事できますか??やはりそのような事はできないのでしょうか・・・・一人ずつカウントしていき合計を横に出すといったかたちをとりたいのです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
私は解答後の質問の中にあるOKWEBの中のコードをコピーアンドペーストだけでやったら、動きました。再解説しますのでやって見てください。 (1)Dim i As Integer Private Sub test01() i = 1 End Subを貼りつけます。 注意事項は、VBEの画面上で Private Sub CommandButton1_Click()とEnd及びその下の Private Sub CommandButton2_Click()とEndの塊の外 すなわちPrivate Sub CommandButton1_Click()より上の部分 に貼りつけること。(Private Sub CommandButton1_Click() とEndの間に貼りつけてはいけない。) (2)Private Sub CommandButton1_Click()とEndのあいだにIf Worksheets("sheet1").Cells(i, 3) <> Minute(Time()) Then i = i + 1 End If Worksheets("sheet1").Cells(i, 2) = Hour(Time()) Worksheets("sheet1").Cells(i, 3) = Minute(Time()) Worksheets("sheet1").Cells(i, 4) = Cells(i, 4) + 1 を貼りつけること。 (3)Private Sub CommandButton2_Click()とEndのあいだ にIf Worksheets("sheet1").Cells(i, 3) <> Minute(Time()) Then i = i + 1 End If Worksheets("sheet1").Cells(i, 2) = Hour(Time()) Worksheets("sheet1").Cells(i, 3) = Minute(Time()) Worksheets("sheet1").Cells(i, 5) = Cells(i, 5) + 1 を貼りつけること。 (4)(1)のi=1の行にカーソルを置いて(ここを間違わないこと)VBEの画面の実行/Subフォームの実行をクリックする。これでiに1がセットされる。初期値の設定。これが 上手くいかないと、+1の演算(i=i+1)上手くいかない。 (5)あとはエクセルのシートの男女ボタンをクリックすると +1されました。
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
VBAというものが、初めての方には無理があるかと思いますが,一応易しそうに仕様・要求を簡略化して載せます。 (1)Sheet1の画面で表示-ツールバー-VisualBasicをクリック。 (2)VisualBasicのツールバーの中の四角い「コマンドボタン」をクリック。 (3)Sheet1上にカーソルを持ってくると+字状になるから右下方向に左マウスを押し下げつつ擦ると、小□が四隅と辺中間に8つ現われる。 (4)四角の中で右クリックする。プロパティをクリック。Captionの行の右列に「男」と打ちこむ。プロパティウインドウの右上の×をクリック。 (5)(2)-(4)をもう一度繰り返す。コマンドボタンをもう1つ作る。Captionの男としたところを「女」といれる。配置はA列辺りで、男と女が適当に離れて、上下に揃うようにする。 (6)「男」の方で、小□が四隅と辺中間に8つ現われた状態で、その中でダブルクリックする。 Private Sub CommandButton1_Click() End Subとなる。 元のSheet1に戻りる。 (7)「女」の方でも、小□が四隅と辺中間に8つ現われた状態で、その中でダブルクリックする。 Private Sub CommandButton2_Click() End Subが(6)の下に追加される。 (8)(6)の方のSub End間に下記コードをコピーして貼りつける If Worksheets("sheet1").Cells(i, 3) <> Minute(Time()) Then i = i + 1 End If Worksheets("sheet1").Cells(i, 2) = Hour(Time()) Worksheets("sheet1").Cells(i, 3) = Minute(Time()) Worksheets("sheet1").Cells(i, 4) = Cells(i, 4) + 1 (9)(7)の方のSub End間に下記コードをコピーして貼りつける If Worksheets("sheet1").Cells(i, 3) <> Minute(Time()) Then i = i + 1 End If Worksheets("sheet1").Cells(i, 2) = Hour(Time()) Worksheets("sheet1").Cells(i, 3) = Minute(Time()) Worksheets("sheet1").Cells(i, 5) = Cells(i, 5) + 1 (10)Private Sub CommandButton1_Click()の上に Dim i As Integer Private Sub test01() i = 1 End Sub を貼りつける。 (11)Private Sub test01() i = 1 End Subの行にカーソルを置いて、メニューの「実行」-Sub/ユーザーフォームの実行をクリック。 (12)Sheet1に戻り、三角定規と鉛筆のアイコンをクリック。 (13)「男」ボタンをクリックするとD列の数字が1カウントアップ。「女」ボタンをクリックするとE列の数字が1カウントアップ。時刻はB列=時、C列=分が表示されます。 パソコンの時計を使っていますので正確に合わせておいてください。 時間ごとなどの合計は、エクセルの表への操作で出したり、印刷したりしてください。 (14)表をリセットする時は、Sheet1をSheet2なりにコピーしてしまってから )Private Sub test01() i = 1 End Subの行にカーソルを置いて、メニューの「実行」-「Sub/ユーザーフォームの実行」をクリック。
- imogasi
- ベストアンサー率27% (4737/17069)
(1)来館者の数を、ドアーの光線さえぎりや重量がかかった 事やドアーの開閉÷2で読み取る装置とパソコンのエクセルを連動させるのは、素人では無理でしょう。 (2)貸出表とかの枚数を別途に人が数えていて、表になっている(または作る)ならエクセルの表に入力すれば、グラフ等に直ぐなるし,時刻別、日別、月別に表せる事は簡単にできます。 (3)ノートパソコンを持ったアルバイトの人が、来館客を 数えて入力する、カウンタの代わりにエクセルを使うなら VBAというプログラムになりますが、10行程度のものを 組めば出来ます。 Private Sub test01() i = 1 End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Cells(i, 3) <> Minute(Time()) Then i = i + 1 End If Cells(i, 2) = Hour(Time()) Cells(i, 3) = Minute(Time()) Cells(i, 4) = Cells(i, 4) + 1 End Sub 来館者を見るごとに、エンタキーを押すと分刻みで1だけ カウントアップします。分が進むと下行にカウント1アップ して表上に出して行きます。 (4)最近は各図書館とも、バーコードシステムの貸出し・ 返却システムが導入済みのように思います。回りの詳しい方に聞けば、来館者数をはじめ、詳しい統計データが既に出るようになっているはずと思いますが。
お礼
(3)のようなかたちでカウントを取っていきたいのですが・・・ちょっと私には難しいのですが。どのように作成すれば良いのでしょうか??男女別に1時間ごとにカウントしていき男女の合計も一時間ごとにだします。最後に一日の男女別の合計と全体の合計をだす表を作りたいのです。今までは紙で正の字でチェックしていました。それをノートパソコンでおこないたいのです。アドバイスお願い致します。
- miunana
- ベストアンサー率0% (0/4)
来館者と時間をデータベースとして入力後、ピボットテーブルで並べ替え・集計→単位を指定してみてはいかがでしょうか?
- moccos
- ベストアンサー率43% (61/140)
初めまして。 おっしゃってる意味が良く解らないのですが? エクセルは集計は得意ですが入力は自動では出来ません。 時間ごとの入場者数を数えるのは何処で誰が如何して・・ もう少し具体的にご質問いただけると回答も増えると思います。 人感センサー等で読み取る装置が有ってその装置から何らかのデジタルデータが受け取れるのでしたら話は別ですが?
お礼
ありがとうございます。早速実行してみたのですが・・・エラーがでてしまいました。このような感じにプログラムを組んだのですが。なにが間違っているのでしょうか?(13)でエラーが出ます。 Dim i As Integer Private Sub test01() i = 1 End Sub Private Sub CommandButton1_Click() If Worksheets("sheet1").Cells(i, 3) <> Minute(Time()) Then i = i + 1 End If Worksheets("sheet1").Cells(i, 2) = Hour(Time()) Worksheets("sheet1").Cells(i, 3) = Minute(Time()) Worksheets("sheet1").Cells(i, 4) = Cells(i, 4) + 1 End Sub Private Sub CommandButton2_Click() If Worksheets("sheet1").Cells(i, 3) <> Minute(Time()) Then i = i + 1 End If Worksheets("sheet1").Cells(i, 2) = Hour(Time()) Worksheets("sheet1").Cells(i, 3) = Minute(Time()) Worksheets("sheet1").Cells(i, 5) = Cells(i, 5) + 1 End Sub 宜しくお願い致します。