Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12026 / 13646 ツリー ←次へ | 前へ→

【12762】勤務時間帯の分別方法 キュイ 04/4/14(水) 15:26 質問
【12770】Re:勤務時間帯の分別方法 IROC 04/4/14(水) 16:43 回答
【12778】Re:勤務時間帯の分別方法 キュイ 04/4/14(水) 17:35 お礼
【12797】Re:勤務時間帯の分別方法 IROC 04/4/15(木) 10:08 回答
【12803】Re:勤務時間帯の分別方法 キュイ 04/4/15(木) 14:13 お礼
【12805】Re:勤務時間帯の分別方法 IROC 04/4/15(木) 14:39 回答
【12806】Re:勤務時間帯の分別方法 キュイ 04/4/15(木) 15:20 お礼
【12807】Re:勤務時間帯の分別方法 IROC 04/4/15(木) 15:31 回答

【12762】勤務時間帯の分別方法
質問  キュイ  - 04/4/14(水) 15:26 -

引用なし
パスワード
   仕事で勤怠管理をする事になったのですが、
私の会社では昼勤と夜勤と2種類あるので困っています。
昼勤と夜勤では、残業時間の計算方法も違い、会社独特の
計算方法で算出するので、通常の勤怠管理ソフトも幾つか
試したのですが、上手くいきませんでした。
そういうわけで現在試作しているものは、出社時間と退社時間を
リストから選び、計算をせずにリストの値から残業時間を出すもの
を作りました。例えば、8:00出社の18:00退社なら残業時間2時間
と予め決めています。但しこれでは昼勤の時は対応できるのですが
夜勤の場合に上手くいきません。昼勤の8:00と夜勤の8:00を区別できる
とよいのですが・・・。
目指すところは、出社時間と退社時間を入力する前に
昼勤務か夜勤かを選択できるようなものです。
わかりにくいかと思われますが、なにかアドバイスを頂けると幸いです。
よろしくお願いします。

【12770】Re:勤務時間帯の分別方法
回答  IROC  - 04/4/14(水) 16:43 -

引用なし
パスワード
   >夜勤の場合に上手くいきません。昼勤の8:00と夜勤の8:00を区別できる

ふつう 20:00 を使いますけど・・・

【12778】Re:勤務時間帯の分別方法
お礼  キュイ  - 04/4/14(水) 17:35 -

引用なし
パスワード
   質問が悪くてすみません。

計算式で残業時間を出せない(会社独特の休憩時間が有る為)ので、
退社時刻を入力すると、対応した残業時間を表示するようにしたいのです。
なので8:00〜翌朝8:00の残業時間(昼勤)と18:00〜8:00の残業時間を区別したいというものでした。

できればユーザーフォームみたいなもので、昼勤と夜勤を選択でき、選択によって、
予め作っておいた退社時間のリストを表示され、それを選ぶことで退社時間が入力できるというのがベストなのですが。

説明が上手くできなくて、悲しいです・・・。

【12797】Re:勤務時間帯の分別方法
回答  IROC  - 04/4/15(木) 10:08 -

引用なし
パスワード
   ようは計算の方法でなく、
ユーザーフォームの作り方次第なのですね。

ユーザーフォームに必要なコントロールを配置して、
処理内容に応じて、コードを書くわけですが、
どの部分をお教えすればよいのでしょうか?

>昼勤と夜勤を選択でき、
これについては、
オプションボタンで選択させ、処理内容を場合分けするか、

昼勤と夜勤のコマンドボタンを2個配置して、
昼勤と夜勤でユーザーフォームを2個わけて作り、
それぞれ、別のユーザーフォームで処理するとか

基本的な作業の内容が同じようであれば、
(必要なコントロールが同じであれば)
前者で、
そうでないなら、後者が良いと思います。

【12803】Re:勤務時間帯の分別方法
お礼  キュイ  - 04/4/15(木) 14:13 -

引用なし
パスワード
   ありがとうございます!
そうなんです。
オプションボタンを3つ用意して、1.昼勤 2.夜勤 3.休日出勤
を選択し、それによって各々別のフォームが出現できると良いのですが・・・。
あと各フォームでは、sheet1!A1:A31に入力されている年月日がリストに表示され、入力する日付を選択でき、同じようにリスト表示される出社時間(B1:B24)と退社時間(C1:C24)を選択し、入力ボタンで入力できるものがベストです。
知識がないので、説明も上手くできなくてゴメンなさい。
今も参考書を見ながら、勉強中です。

【12805】Re:勤務時間帯の分別方法
回答  IROC  - 04/4/15(木) 14:39 -

引用なし
パスワード
   >オプションボタンを3つ用意して、1.昼勤 2.夜勤 3.休日出勤
>を選択し、それによって各々別のフォームが出現できると良いのですが・・・。
フォームをわけるのであれば、オプションボタンより、
コマンドボタンを3個使うのが良いです。

まず、ユーザーフォームを4個作ります。
Userform1 には、コマンドボタンを3個 配置して、

Private Sub CommandButton1_Click()
  Unload Me
  UserForm2.Show
End Sub

Private Sub CommandButton2_Click()
  Unload Me
  UserForm3.Show
End Sub

Private Sub CommandButton3_Click()
  Unload Me
  UserForm4.Show
End Sub

のようにすればよいです。


>あと各フォームでは、sheet1!A1:A31に入力されている年月日がリストに表示され、
>入力する日付を選択でき、同じようにリスト表示される出社時間(B1:B24)と
>退社時間(C1:C24)を選択し、入力ボタンで入力できるものがベストです。

リスト とは、
リストボックスですか?
それともコンボボックスですか?

どちらだとしても、
RowSource プロパティで sheet1!A1:A31
のように設定しておけば良いです。

【12806】Re:勤務時間帯の分別方法
お礼  キュイ  - 04/4/15(木) 15:20 -

引用なし
パスワード
   ありがとうございます!!
かなりできてきました!
できれば、あともう少しご教授下さい。

Rowsource sheet1!A1:A30で選んだ任意のセルに入力させるには、
入力ボタンにどんなコードを書けばよいでしょうか?
今は、下記のようにB60にしか入力できません。
このB60のところにA1:A30のリストで選んだセルに入力したいのですが・・・。

Private sub CommandButton1_Click()
With ListBox1
  If .ListIndex = -1 Then
  MsgBox "出社時間を選択して下さい"
Else
  Range("B60").Value = .List(.ListIndex)
  End If
End With
End Sub

【12807】Re:勤務時間帯の分別方法
回答  IROC  - 04/4/15(木) 15:31 -

引用なし
パスワード
   >Rowsource sheet1!A1:A30で選んだ任意のセルに入力させるには、
>入力ボタンにどんなコードを書けばよいでしょうか?

ユーザーフォームを表示させているあいだに
セルを選択するなら、
UserFrom2.Show 0
のようにして、モードレスで表示させてください。
詳しくは VBE ヘルプの Show メソッド を参照してください。


>今は、下記のようにB60にしか入力できません。
>このB60のところにA1:A30のリストで選んだセルに入力したいのですが・・・。

アクティブセルを参照すればよいと思います。

>  Range("B60").Value = .List(.ListIndex)
    ↓
  ActiveCell.Value = .List(.ListIndex)

12026 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free