Excel VBA質問箱 IV

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

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


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

【56229】セルのデータがコンボボックスに表示しません おじさん46 08/6/9(月) 20:21 質問[未読]
【56236】Re:セルのデータがコンボボックスに表示し... Abebobo 08/6/10(火) 17:38 発言[未読]
【56240】Re:セルのデータがコンボボックスに表示し... おじさん46 08/6/10(火) 21:30 発言[未読]
【56241】Re:セルのデータがコンボボックスに表示し... Abebobo 08/6/10(火) 23:04 発言[未読]
【56263】Re:セルのデータがコンボボックスに表示し... おじさん46 08/6/11(水) 20:06 お礼[未読]
【56242】Re:セルのデータがコンボボックスに表示し... ponpon 08/6/10(火) 23:09 発言[未読]
【56244】Re:セルのデータがコンボボックスに表示し... ponpon 08/6/10(火) 23:15 発言[未読]
【56245】Re:セルのデータがコンボボックスに表示し... Abebobo 08/6/11(水) 0:14 発言[未読]
【56249】Re:セルのデータがコンボボックスに表示し... Jaka 08/6/11(水) 10:09 発言[未読]

【56229】セルのデータがコンボボックスに表示しま...
質問  おじさん46  - 08/6/9(月) 20:21 -

引用なし
パスワード
   シートの該当行のデータをフォーム上のテキストボックスに収集し、そこで変更が必要なデータは修正し、別の印刷用のシートにデータを転記し印刷するファイルを作成しています。
フォーム上の一部のテキストボックスを複数列のコンボボックスに変更してデータの修正を容易にしようと思います。
別ファイルで単独の複数列のコンボボックスへのデータ収集・リスト表示はうまくいったんですが、そのコードを作成中のファイルに書き込むと、うまくコンボボックスへデータの収集・リスト表示ができません。
なぜ、うまくいかないかわかりません。
ご指導をお願いします。コードは下記の通りです。

Private Sub CommandButton1_Click()
'入力フォームを開く
UserForm1.Show
End Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
'A列セル選択右クリックでセルデータ収集後フォームを開く
Dim r As Range
Dim i As Single
If Target.Column <> 1 Then Exit Sub
If Target.Row = 1 Then Exit Sub
Cancel = True

UserForm1.Show 0

i = 1
For Each r In Target.Offset(, 1).Resize(, 6)
  UserForm1.Controls("TextBox" & i).Text = r.Value
  i = i + 1
Next r
End Sub

Private Sub TextBox7_AfterUpdate()
'行番号入力でセルデータ収集
Dim t7 As Long
Dim i  As Long
  t7 = Me.TextBox7.Text
  i = 1
    For i = 1 To 6
    Me.Controls("textbox" & i).Text = ActiveSheet.Cells(t7, i + 1).Value
    Next i
    ActiveSheet.Cells(t7, 1).Select
 
  TextBox7.SetFocus
 
End Sub

Private Sub CommandButton2_Click()
'フォームデータをシートの最終データセルの下のセルに転記と別シート印刷
  Worksheets("sheet3").Activate
    With Range("B5").End(xlDown)
      .Offset(1, 0).Value = TextBox1.Value
      .Offset(1, 1).Value = Now
      .Offset(1, 2).Value = TextBox3.Value
      .Offset(1, 3).Value = TextBox4.Value
      .Offset(1, 4).Value = TextBox5.Value
      .Offset(1, 5).Value = TextBox6.Value
    End With
      
    With Worksheets("Sheet4")
       .Cells(16, 2).Value = TextBox1.Text
       .Cells(2, 3).Value = Now
       .Cells(5, 2).Value = TextBox3.Text
       .Cells(5, 4).Value = TextBox4.Text
       .Cells(5, 7).Value = TextBox5.Text
       .Cells(5, 5).Value = TextBox6.Text
    End With
    
  Worksheets("Sheet4").PrintOut
  
   TextBox1.Text = ""
   TextBox2.Text = ""
   TextBox3.Text = ""
   TextBox4.Text = ""
   TextBox5.Text = ""
   TextBox6.Text = ""
   TextBox7.Text = ""
      
   UserForm1.Hide

End Sub
'-----------------------------------------------------
Private Sub UserForm1_Initialize()
'コンボボックスへのセルデータ転記

Dim lRow As Long, myData(2, 2) As Variant
  With Worksheets("Sheet1")
    lRow = .Range("A" & Rows.Count).End(xlUp).Row
  End With
  With ComboBox1
    .ColumnCount = 2
    .ColumnWidths = "60"
    .RowSource = "Sheet1!A1:B" & lRow
  End With

End Sub
'-----------------------------------------------------
追加したコードはこの上です。

【56236】Re:セルのデータがコンボボックスに表示...
発言  Abebobo  - 08/6/10(火) 17:38 -

引用なし
パスワード
   おじさん46 さんこんにちは
パッ と見で

With Me.ComboBox1

でしょうか?
ユーザーフォーム上のコンボボックスですよね?

違ったら一生懸命検証してみます。

【56240】Re:セルのデータがコンボボックスに表示...
発言  おじさん46  - 08/6/10(火) 21:30 -

引用なし
パスワード
   Abeboboさんへ アドバイスをありがとうございます。

コンボボックスはユーザーフォーム上です。
下記の通りコードを修正しましたがダメでした。
空欄のリストが表示されるでけです。


Private Sub UserForm1_Initialize()
'コンボボックスへのセルデータ転記

Dim lRow As Long, myData(2, 2) As Variant
  With Worksheets("Sheet1")
    lRow = .Range("A" & Rows.Count).End(xlUp).Row
  End With
  With Me.ComboBox1
    .ColumnCount = 2
    .ColumnWidths = "60"
    .RowSource = "Sheet1!A1:B" & lRow
  End With

End Sub

お手数を取らせます・・・。

【56241】Re:セルのデータがコンボボックスに表示...
発言  Abebobo  - 08/6/10(火) 23:04 -

引用なし
パスワード
   おじさん46 さん あったぁ〜

>Private Sub UserForm1_Initialize()
 ↑
Private Sub UserForm_Initialize()

でも・・・
どこにコードを書いてるのですか?
ユーザーフォームのところですよね??

ところで、ビスタをお使いですよね?
エクセルのヴァージョンは?

【56242】Re:セルのデータがコンボボックスに表示...
発言  ponpon  - 08/6/10(火) 23:09 -

引用なし
パスワード
   ▼おじさん46 さん,Abeboboさん こんばんは。

>Private Sub UserForm1_Initialize()

Private Sub UserForm_Initialize()
            ↑
違いがわかりますか?

たぶんここだと思いますが・・・

【56244】Re:セルのデータがコンボボックスに表示...
発言  ponpon  - 08/6/10(火) 23:15 -

引用なし
パスワード
   かぶっちゃいました。
失礼しました。

【56245】Re:セルのデータがコンボボックスに表示...
発言  Abebobo  - 08/6/11(水) 0:14 -

引用なし
パスワード
   おじさん46 さん ponpon さん こんばんは

ponpon さんも書き込んで下ったので、ちょっと自信をもって

ユーザーモジュールのコードを書く上のところの(なんていうなまえだろ?) ▼ で選択してコードを書けば楽チンです。

*私も今、ユーザーフォームを勉強中なんです。

【56249】Re:セルのデータがコンボボックスに表示...
発言  Jaka  - 08/6/11(水) 10:09 -

引用なし
パスワード
   ▼ponpon さん:
>▼おじさん46 さん,Abeboboさん こんばんは。
>
>>Private Sub UserForm1_Initialize()
>
>Private Sub UserForm_Initialize()
>            ↑
>違いがわかりますか?
>
>たぶんここだと思いますが・・・
たぶんというより、勝手に変えたらダメです。

【56263】Re:セルのデータがコンボボックスに表示...
お礼  おじさん46  - 08/6/11(水) 20:06 -

引用なし
パスワード
   ▼Abebobo さん:

皆さん ありがとうござます。
出ました。
気持ちがいいですね。感謝感謝!

>どこにコードを書いてるのですか?
>ユーザーフォームのところですよね??
はいそうです。
UserForm1の所です。

>ところで、ビスタをお使いですよね?
はい、ビスタです。
>エクセルのヴァージョンは?
2007です。

オブジェクト名はUserForm1なのでUserForm1ではなのかなと思いました。
ウインドー枠にも「UserForm1(コード)」と表示があります。
VBAは奥が深いですね・・・。地道に勉強します。
ありがとうございました。

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