• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:各ボックスの値を、指定セルに転記したいのですが)

エクセル2007での個人名の転写方法についての質問

このQ&Aのポイント
  • エクセル2007で、個人名を指定セルに転写する方法について教えてください。
  • 具体的には、入力シートでユーザーフォーム1を呼び出した後、コンボボックス1で部署名、コンボボックス2で個人名を選択し、リストボックス1で作業名を選択して確定した後に、選択した値をアクティブセルに転写したいです。
  • また、個人名シートには最終行までのデータがあるので、それを転写の範囲にしたいです。さらに、複数の作業名を選択した場合には、作業名ごとに行を分けて、同じ部署の場合はB列の下の行、同じ個人名の場合はC列の下の行に転写したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

>仮にアクティブセルがB10であった時にリストボックス1で5つ選択された場合、 >コンボボックス1の値はB10からB14に >コンボボックス2の値はC10からC14に >リストボックス1の値はD10からD14に >それぞれ入力させたいのですが・・・   ↑このような情報は先に言っておいてくださいね。   For i = 0 To .ListCount - 1     If .Selected(i) = True Then       ActiveCell.Offset(j, 0).Value = Me.ComboBox1.Value       ActiveCell.Offset(j, 1).Value = Me.ComboBox2.Value       ActiveCell.Offset(j, 2).Value = .List(i, 0)       j = j + 1     End If   Next

9494786
質問者

お礼

watabe007様 説明不足で度々ご面倒お掛けして、申し訳ございませんでした。 完璧です!!! また、次回質問時にも助けて頂ければ、助かります。 それまでにもっとレベルアップ出来るよう、勉強します。 お世話になりました。 ありがとうございました。

その他の回答 (2)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

>リストボックス1の転記ですが、複数選択をしても >複数行へ転記出来ず同一セル内に入ってしまいます。 >解消したいので、引続きご検討の程よろしくお願いします。 あなたがアップされたコード >For i = 0 To .ListCount - 1 >If .Selected(i) = True Then >LB = LB & .List(i, 0) >LB = Cells(行, 列 + 2) ←ココを変更したい >End If >Next i を見る限りは、それぞれの選択された値を連結して >さらに右隣にリストボックス1の値を転記 と思われますが・・・ >さらに右隣にリストボックス1の値を転記 では2つ目のリストボックスの値は、どこに? さらに右隣のセルから下に続けるのなら   For i = 0 To .ListCount - 1     If .Selected(i) = True Then       ActiveCell.Offset(j, 2).Value = .List(i, 0)       j = j + 1     End If   Next

9494786
質問者

お礼

再度の回答、ありがとうございます。 イメージ通りです。 が、コンボボックス1と2の値をリストボックス1で選択した数だけ 下に入力出来れば完成です。 仮にアクティブセルがB10であった時に リストボックス1で5つ選択された場合、 コンボボックス1の値はB10からB14に コンボボックス2の値はC10からC14に リストボックス1の値はD10からD14に それぞれ入力させたいのですが・・・ あと一息ですので、引き続き宜しくお願い致します。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

>個人名シートの指定範囲は、最終行までとしたい。 >ListBox1.RowSource = "○○!B1:B100" ←B100ではなく、最終行に変更したい Dim strRow As String With Sheets("○○")   strRow = .Range("B1", .Cells(Rows.Count, "B").End(xlUp)).Address(External:=True) End With .ListBox1.RowSource = strRow >入力シートのアクティブセルにコンボボックス1の値を転記 >UserForm1.ComboBox1.Value = Cells(行, 列) ActiveCell.Value = UserForm1.ComboBox1.Value >右隣セルにコンボボックス2の値を転記 >UserForm1.ComboBox2.Value = Cells(行, 列 + 1) ActiveCell.Offset(, 1).Value =UserForm1.ComboBox2.Value >さらに右隣にリストボックス1の値を転記 >For i = 0 To .ListCount - 1 >  If .Selected(i) = True Then >    LB = LB & .List(i, 0) >    LB = Cells(行, 列 + 2) '←ココを変更したい >  End If >Next i For i = 0 To .ListCount - 1   If .Selected(i) = True Then     LB = LB & .List(i, 0)   End If Next i ActiveCell.Offset(, 2).Value =LB

9494786
質問者

お礼

watabe007様 回答、ありがとうございます!

9494786
質問者

補足

watabe007様 早々の回答、ありがとうございます。 出張の為挨拶が遅くなり、申し訳ございませんでした。 リストボックス1の転記ですが、複数選択をしても 複数行へ転記出来ず 同一セル内に入ってしまいます。 解消したいので、引続きご検討の程よろしくお願いします。