• ベストアンサー

VBAについて

UserForm1に、TextBox2、TextBox3、ComboBox1があります。 例えば、それぞれに TextBox2 = 100 TextBox3 = 500 ComboBox1 = abc-def と値をフォームから入力し、 UserForm1に配置された「OK」ボタンをクリックすると、 エクセルシートのH10からM10の結合された一つのセルの中に 100 / 500 abc-def と2段表示させたいのですが、可能でしょうか。 可能でしたら方法を教えて下さい。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

ポイントは (1)セル結合したセルへ値をセットするのは結語前の左上隅のセルをめがけて、代入すること。 その他のセルに代入するとエラーにならないが、何もセットされなかった。 (2)一つのセルの中に、2段表示させたいのですが は、VBCRLFの改行ではなく100/500のあとに、Chr(10)(改行のみ)を入れてabc-defと&でつなぐこと。 Textbox2.text & Textbox3.text & Chr(10) & Combobox1.text (3)そして書式ーセルー配置ー全体を折り返して表示にチェックを入れる。またはVBAで.WrapText=Trueを設定すること。

piopao
質問者

お礼

回答ありがとうございます。 無事解決することができました。 詳しく教えていただき、 本当にありがとうございました。

その他の回答 (2)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.3

こんにちは。KenKen_SP です。補足です。 例えば、A1:C5 が結合された状態で、 Range("B2").Value = "AAAA" & vbLf & "BBBB" 無効となって代入されません。結合セルへ代入するのであれば #1 や #2 のご回答のように左上のセルに対して代入するか、次のようにしま す。 Range("B2").MergeArea.Value = "AAAA" & vbLf & "BBBB" Range("B2") の MergeArea プロパティーで セルの結合範囲が Range オブジェクトで返され、その Range オブジェクトに対して代入して います。

piopao
質問者

お礼

回答ありがとうございます。 無事解決することができました。 このような方法もあるのですね。 勉強になりました。 本当にありがとうございました。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

Range("H10") = TextBox2 & " / " & TextBox3 & vblf & ComboBox1.value >結合された一つのセル 結合セルは、範囲の左上のセル位置を指定しないと有効になりません。 結合範囲の他のセルを指定しても無効(エラー)になります。 >2段表示させたいのですが 折り返しは VbLf 等で繋ぎます。

piopao
質問者

お礼

回答ありがとうございます。 無事解決することができました。 本当にありがとうございました。

関連するQ&A