Excel VBA質問箱 IV

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

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


7182 / 13644 ツリー ←次へ | 前へ→

【40435】1行ずつ表示させセルに値を入れる RIKE 06/7/13(木) 17:12 お礼[未読]
【40453】Re:1行ずつ表示させセルに値を入れる ichinose 06/7/14(金) 7:59 発言[未読]
【40473】1行ずつ表示させセルに値を入れる RIKE 06/7/14(金) 13:54 質問[未読]
【40485】Re:1行ずつ表示させセルに値を入れる ichinose 06/7/14(金) 18:00 発言[未読]
【40671】Re:1行ずつ表示させセルに値を入れる RIKE 06/7/20(木) 11:44 お礼[未読]

【40435】1行ずつ表示させセルに値を入れる
お礼  RIKE  - 06/7/13(木) 17:12 -

引用なし
パスワード
   初心者の為よろしくお願いします。
ユーザーフォームにリストボックスとコマンドボタンがあります。
リストボックスに1行ずつ列AからJのデータを表示し、
コマンドボタンをクリックするとその行のG列に日付が入り、
リストボックスに次の行を表示させるループを作りたいのですが、
どのような方法がありますか?
データ

 A  B ・・・G・・ J
1名前 住所 ・・ 日付 ・番号
2HIRO 新宿 ・・   ・ 62
3JIRO さい ・・   ・ 151
4TARO いわ ・・   ・ 180

【40453】Re:1行ずつ表示させセルに値を入れる
発言  ichinose  - 06/7/14(金) 7:59 -

引用なし
パスワード
   ▼RIKE さん:
おはようございます。


>初心者の為よろしくお願いします。
>ユーザーフォームにリストボックスとコマンドボタンがあります。
これは、了解です。


>リストボックスに1行ずつ列AからJのデータを表示し、
>コマンドボタンをクリックするとその行のG列に日付が入り、
>リストボックスに次の行を表示させるループを作りたいのですが、
リストボックスに一行しか表示させないのですか?
だとすると、リストボックスを使うのが無駄なような気がしますが・・・。


>どのような方法がありますか?
>データ
>
> A  B ・・・G・・ J
>1名前 住所 ・・ 日付 ・番号
>2HIRO 新宿 ・・   ・ 62
>3JIRO さい ・・   ・ 151
>4TARO いわ ・・   ・ 180
ユーザーフォーム(Userform1)に
リストボックス(Listbox1)とコマンドボタン(Commandbutton1)を配置します。
上記のデータがSheet1という名前のシート上にあるとします。

標準モジュールに
'====================================
sub main()
  userform1.show
end sub


Userform1のモジュールに

'================================================================
Private Sub CommandButton1_Click()
  With ListBox1
    Worksheets("sheet1").Range("a2").Offset(.ListIndex, 6).Value = Date
    .List(.ListIndex, 6) = Date
    End With
End Sub
'================================================================
Private Sub UserForm_Initialize()
  With Worksheets("sheet1")
    ListBox1.ColumnCount = 10
    ListBox1.List() = .Range("a2", .Cells(.Rows.Count, "a").End(xlUp)).Resize(, 10).Value
    End With
End Sub


として、mainを実行してみてください。

・Userform1が表示されます。

・Listbox1にSheet1の内容が表示されます。

・そのListbox1のデータの中からひとつ選択して、コマンドボタン
 (Commandbutton1)をクリックしてください。

・選択された行に相当するSheet1内のデータのG列に今日の日付が入ります。

・Listbox1にも日付は反映されます。

・Listbox1の選択行を代えて同様の処理を繰り返すことが出来ます。


リストボックスを使うなら、こういうことでしょうか?

【40473】1行ずつ表示させセルに値を入れる
質問  RIKE  - 06/7/14(金) 13:54 -

引用なし
パスワード
   ▼ichinose さん:
こんにちは。
わかり易くしていただきありがとうございます。

>リストボックスに一行しか表示させないのですか?
>だとすると、リストボックスを使うのが無駄なような気がしますが・・・。
たしかにその通りでした。
上から順番に1行ずつ表示させたいです。
テキストボックスの方がいいですね。


>Userform1のモジュールに
>
>'================================================================
>Private Sub CommandButton1_Click()
>  With ListBox1
>    Worksheets("sheet1").Range("a2").Offset(.ListIndex, 6).Value = >Date
>    .List(.ListIndex, 6) = Date
>    End With
>End Sub
>'================================================================
>Private Sub UserForm_Initialize()
>  With Worksheets("sheet1")
>    ListBox1.ColumnCount = 10
>    ListBox1.List() = .Range("a2", .Cells(.Rows.Count, "a").End
>(xlUp)).Resize(, 10).Value
>    End With
>End Sub

どのように変えればいいでしょうか?

【40485】Re:1行ずつ表示させセルに値を入れる
発言  ichinose  - 06/7/14(金) 18:00 -

引用なし
パスワード
   >たしかにその通りでした。
>上から順番に1行ずつ表示させたいです。
>テキストボックスの方がいいですね。
こういう仕様なんですか?
Listboxでやりましょう(コードが簡単だったから)


>
>
>>Userform1のモジュールに
'============================
Private rng As Range
Private idx As Long
'===============================
Private Sub CommandButton1_Click()
  With ListBox1
    rng.Cells(idx, 7).Value = Date
    Call set_listbox1
    End With
End Sub
'================================================================
Private Sub UserForm_Initialize()
  With Worksheets("sheet1")
    Set rng = .Range("a2", .Cells(.Rows.Count, "a").End(xlUp))
    End With
  ListBox1.ColumnCount = 10
  idx = 0
  Call set_listbox1
End Sub
'================================================================
Private Sub set_listbox1()
  With ListBox1
    .Clear
    If idx < rng.Count Then
     .List() = rng.Cells(idx + 1).Resize(, 10).Value
     idx = idx + 1
     End If
    End With
End Sub

これで試してみてください。

【40671】Re:1行ずつ表示させセルに値を入れる
お礼  RIKE  - 06/7/20(木) 11:44 -

引用なし
パスワード
   ▼ichinose さん:
すみません返信遅くなりました。

>Listboxでやりましょう(コードが簡単だったから)
できました。ありがとうございます。
これから勉強します。

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