Excel VBA質問箱 IV

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

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


26246 / 76737 ←次へ | 前へ→

【55823】リストボックスを活用するには
質問  にしもり  - 08/5/20(火) 17:15 -

引用なし
パスワード
   こんにちは。
以前【54276】で皆様のお力で解決した従来の処理、すこしかえる必要が生じております。

-従来の処理-

(標準モジュール)
Option Explicit

Public i As Long
Public ws1 As Worksheet

Sub Sample()
 If Not Application.Intersect(Range("B3:B104"), ActiveCell) Is Nothing Then
  Set ws1 = Worksheets("history")
  i = ws1.Range("B65536").End(xlUp).Row + 1
  If i < 5 Then
   i = 5
  End If
 
  With ActiveCell
   ws1.Cells(i, 2).Resize(, 3).Value = Array(.Offset(, -1).Value, .Value, .Offset(, 3).Value)
   ws1.Cells(i, 2).Offset(, 7).Value = .Offset(, 5).Value
  End With
  UserForm1.Show
 Else
  MsgBox "Programのいずれかをアクティブにしてください。"
 End If
End Sub


(ユーザーフォーム)
Option Explicit

Private Sub UserForm_Initialize()
  Calendar1.Value = Date
'  カレンダーの日付をセルにセットする
   Dim i As Integer
    Me.TextBox1.Value = Date
    With Me.ComboBox1
     For i = 1 To 24
      .AddItem i
     Next
    End With
    With Me.ComboBox2
     For i = 0 To 45 Step 15
      .AddItem i
     Next
    End With
    With Me.ComboBox3
     For i = 1 To 24
      .AddItem i
     Next
    End With
    With Me.ComboBox4
     For i = 0 To 45 Step 15
      .AddItem i
     Next
    End With
End Sub

Private Sub Calendar1_Click()
  TextBox1.Value = Calendar1.Value
'  カレンダーの日付をセルにセットする
End Sub

Private Sub CommandButton1_Click()
 Dim From_Str As String
 Dim To_Str As String
 Dim Hours As Double

 If Me.ComboBox1.Value <> "" And Me.ComboBox2.Value <> "" Then
  From_Str = Me.ComboBox1.Value & ":" & Me.ComboBox2.Value
 End If
 If Me.ComboBox3.Value <> "" And Me.ComboBox4.Value <> "" Then
  To_Str = Me.ComboBox3.Value & ":" & Me.ComboBox4.Value
 End If
 If From_Str <> "" And To_Str <> "" Then
  Hours = (CDate(To_Str) - CDate(From_Str)) * 24
  'Date
  ws1.Cells(i, 5).Value = Me.TextBox1.Value
  'Time(From)
  ws1.Cells(i, 6).Value = CDate(From_Str)
  'Time(To)
  ws1.Cells(i, 7).Value = CDate(To_Str)
  'Hours
  ws1.Cells(i, 8).Value = (CDate(To_Str) - CDate(From_Str)) * 24
  'Place
  ws1.Cells(i, 10).Value = Me.TextBox2.Value
  'Notese
  ws1.Cells(i, 11).Value = Me.TextBox3.Value
 End If
  Unload UserForm1
End Sub

Private Sub UserForm_Deactivate()
  Unload UserForm1
End Sub


-かえたい点-

ユーザーフォームにリストボックスをおきたいです。
その際Mutliselect プロパティをfmMultiSelectExtendedで複数選択可とします。
その際、ポイントするリストはアクティヴシートでなく別のシート(シート名member)のA2:A51にあり、常にそこをさしたいです。中は社員名です。
なおmemberのB2:B51には社員名に対応する社員番号がCharacterで入っています。

それが解決できたら次にやりたい以下のとおりです。
(1)リストボックスで得た値が単数の場合、従来の処理にくわえ、worksheet"history"のi行m列にリストボックスで取得した社員名を、また、i行l列にリストボックスで取得した社員の社員番号を転記したい。
(2)リストボックスで得た値が複数の場合、
(2-1)従来の処理にくわえ、worksheet"history"のi行m列にリストボックスで取得した1番目の社員名を、また、i行l列にリストボックスで取得した1番目社員の社員番号を転記したい。
(2-2)次にworksheet"history"のi+1行m列にリストボックスで取得した2番目の社員名を、また、i+1行l列にリストボックスで取得した2番目の社員の社員番号を転記したい・・・という具合です。

そもそもアクティヴシート以外のシートの特定範囲を、リストボックスに表示するにはどうしたらよいかわかりません。
どなたかご教示くださいませんか。

0 hits

【55823】リストボックスを活用するには にしもり 08/5/20(火) 17:15 質問
【55843】Re:リストボックスを活用するには にしもり 08/5/21(水) 10:35 質問
【55847】Re:リストボックスを活用するには Yuki 08/5/21(水) 11:54 発言
【55851】Re:リストボックスを活用するには にしもり 08/5/21(水) 13:37 お礼
【55895】Re:リストボックスを活用するには にしもり 08/5/22(木) 18:27 質問
【55897】Re:リストボックスを活用するには カウボーイズ 08/5/22(木) 19:15 回答
【55899】Re:リストボックスを活用するには にしもり 08/5/22(木) 19:55 質問
【55900】Re:リストボックスを活用するには カウボーイズ 08/5/22(木) 20:15 回答
【55911】Re:リストボックスを活用するには にしもり 08/5/23(金) 10:54 お礼
【55912】Re:リストボックスを活用するには カウボーイズ 08/5/23(金) 11:44 回答
【55968】Re:リストボックスを活用するには にしもり 08/5/26(月) 17:10 質問
【55973】Re:リストボックスを活用するには にしもり 08/5/27(火) 16:08 質問
【55974】Re:リストボックスを活用するには Yuki 08/5/27(火) 16:18 発言
【55975】Re:リストボックスを活用するには にしもり 08/5/27(火) 16:28 お礼
【55976】Re:リストボックスを活用するには にしもり 08/5/27(火) 17:38 質問
【55978】Re:リストボックスを活用するには カウボーイズ 08/5/27(火) 22:25 回答
【55979】Re:リストボックスを活用するには カウボーイズ 08/5/28(水) 0:01 回答
【55983】Re:リストボックスを活用するには にしもり 08/5/28(水) 11:12 お礼

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