Excel VBA質問箱 IV

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

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


52322 / 76736 ←次へ | 前へ→

【29253】Re:任意の行のレコードをユーザフォーム...
発言  Lion  - 05/9/29(木) 10:23 -

引用なし
パスワード
   うくれれ さん
おはようございます

>単純に、以下のように教えていただいたコードを=で挟んで逆にすればできるの
>かなと思ったのですが、これではまずいのでしょうか。

おしいです!

うくれれさんの意図していないところで
ListBox1_Clickが呼ばれているからです。

下記コードに変更してください。

'-----------------------------------
Option Explicit
Dim myCHE As Boolean
'-----------------------------------
Private Sub CommandButton1_Click()
'---変更---
Dim f As Long
Dim myLID As Long

myLID = ListBox1.ListIndex + 2
myCHE = True

For f = 1 To 3
  Worksheets("Sheet1").Cells(myLID, f).Value = Controls("TEXTBOX" & f).Value
Next

For f = 1 To 100
  If Controls("CHECKBOX" & f).Value = False Then
    Worksheets("Sheet1").Cells(myLID, f + 3).Value = 0
  End If
Next

For f = 1 To 100
  If Controls("CHECKBOX" & f).Value = True Then
    Worksheets("Sheet1").Cells(myLID, f + 3).Value = 1
  End If
Next

myCHE = False
End Sub
'-----------------------------------
Private Sub UserForm_Initialize()
'---フォーム設定---
Dim LASROW1 As Long
Dim myDRange1 As String
Dim f As Long

With ListBox1
  .ColumnCount = 3
  .ColumnWidths = "80;80;50"
End With

LASROW1 = Worksheets("Sheet1").Range("A65536").End(xlUp).Row
myDRange1 = "Sheet1!A2:C" & LASROW1
ListBox1.RowSource = myDRange1

If Worksheets("Sheet1").Range("A2").Value = "" Then
  ListBox1.RowSource = ""
End If

For f = 1 To 3
  Controls("TEXTBOX" & f).Value = ""
Next
For f = 1 To 100
  Controls("CHECKBOX" & f).Value = False
Next
End Sub
'-----------------------------------
Private Sub ListBox1_Click()
'---リスト選択---
Dim f As Long
Dim myNAME As String
Dim myLID As Long

If myCHE = True Then
  Exit Sub
End If

myNAME = ListBox1.Column(0)
myLID = ListBox1.ListIndex + 2

For f = 1 To 3
  Controls("TEXTBOX" & f).Value = Worksheets("Sheet1").Cells(myLID, f).Value
Next

For f = 1 To 100
  If Worksheets("Sheet1").Cells(myLID, f + 3).Value = 0 Then
    Controls("CHECKBOX" & f).Value = False
  End If
  
  If Worksheets("Sheet1").Cells(myLID, f + 3).Value = 1 Then
    Controls("CHECKBOX" & f).Value = True
  End If
  
  If Worksheets("Sheet1").Cells(myLID, f + 3).Value = "" Then
    Controls("CHECKBOX" & f).Value = False
  End If
Next

End Sub

'-----------------------------------

質問ですが
チェックボックスは100個無いのでしょうか?
私が思っていたのとシート構成も違うみたいですが
よろしいですか?

うくれれさんのシート構成に合わせてくださいね。

0 hits

【29162】任意の行のレコードをユーザフォームへ貼付け うくれれ 05/9/27(火) 0:01 質問
【29173】Re:任意の行のレコードをユーザフォームへ... Lion 05/9/27(火) 10:29 発言
【29220】Re:任意の行のレコードをユーザフォームへ... うくれれ 05/9/27(火) 21:54 お礼
【29221】Re:任意の行のレコードをユーザフォームへ... うくれれ 05/9/27(火) 22:23 質問
【29224】Re:任意の行のレコードをユーザフォーム... Lion 05/9/27(火) 23:53 発言
【29247】Re:任意の行のレコードをユーザフォーム... うくれれ 05/9/29(木) 1:36 質問
【29253】Re:任意の行のレコードをユーザフォーム... Lion 05/9/29(木) 10:23 発言
【29299】Re:任意の行のレコードをユーザフォーム... うくれれ 05/9/30(金) 1:49 質問
【29311】Re:任意の行のレコードをユーザフォーム... Lion 05/9/30(金) 12:12 発言
【29352】Re:任意の行のレコードをユーザフォーム... うくれれ 05/10/2(日) 2:00 質問
【29354】Re:任意の行のレコードをユーザフォーム... Lion 05/10/2(日) 18:33 発言
【29465】Re:任意の行のレコードをユーザフォーム... うくれれ 05/10/5(水) 22:47 お礼
【29477】Re:任意の行のレコードをユーザフォーム... LION 05/10/6(木) 0:50 発言
【29478】Re:任意の行のレコードをユーザフォーム... LION 05/10/6(木) 0:58 発言
【29639】Re:任意の行のレコードをユーザフォーム... うくれれ 05/10/10(月) 1:46 質問

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