• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数コントロールテキストの同一セルへの入力)

エクセルVBAで複数のコントロールテキストを同一セルに入力する方法

このQ&Aのポイント
  • エクセルVBAを使用して、ユーザーフォームのラベルとテキストボックスに入力されたテキストをセルの同一セルに一括で入力する方法を教えてください。
  • 上記の要件を満たすために、以下のコードを使用することができます。
  • With文を使用して、ユーザーフォームのラベルとテキストボックスの各要素を連結して、セルに入力します。より簡潔な方法があれば教えてください。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

簡潔かと言われると微妙ですが、↓なら見た目スッキリはします。 With UserForm1   For i = 1 To 6     Range("A1") = Range("A1") & .Controls("Label" & i).Caption     Range("A1") = Range("A1") & .Controls("TextBox" & i).Text   Next i End With

OGN
質問者

お礼

ご回答ありがとうございます! お礼を入力したつもりが出来ていなかったみたいで 申し訳ありません。 .Label1.Caption & .TextBox1.Text ~とダラダラしてたものが かなりすっきりしました! 本当にありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

テキストボックスでは既定のプロパティがTextで、 ラベルではCaptionのようですので Sub Macro()   Dim objControl As Object      For Each objControl In UserForm1.Controls     Range("A1").Value = Range("A1").Value & objControl   Next End Sub 上記でも動作するようです。

OGN
質問者

お礼

ご回答ありがとうございます。 返信が遅くなってすいません。 ご提案いただいたものを試してみました。 うまくセルに入力することができましたが、思っていたものは ラベル1→テキストボックス1→ラベル2→テキストボックス2… といった感じで、これで試してみると ラベル1~6→テキストボックス1~6 といった感じになってしまいました。

すると、全ての回答が全文表示されます。
  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.1

コントロール配列にすればループを使って文字列を作り上げることはできますが、 簡潔になるかといわれると、6個だと微妙なところですね。

OGN
質問者

お礼

ご回答ありがとうございます。 返信が遅くなってすいません。 確かに6個だと微妙でしたが、使用個数は増えるかもしれないので コントロール配列を使って頑張ってみます。

すると、全ての回答が全文表示されます。

関連するQ&A