- ベストアンサー
VBA:ユーザーフォームに貼り付けるラベルを――
ExcelのVBAでユーザーフォーム上のラベルの文字列を縦書きには出来ないでしょうか?ご存じの方、ご教授願います。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ANO2,再度の登場です。(^^;;; やりたいことは次のようなことでしょうか? 例えば、セルA1に未入力~3行のデータがあり それを、UserFormのLabelCaptionに縦書に表示したい 以下を新しいブックで試してみてください。 UserFormにLabel1~3 とCommandButtonをひとつ配置 ActiveSheetのセルA1 に複数行のデータを入力 CommandButtonクリックでそれをLabel1~3に表示する 但し、4行以上は無視する -------------------------------------------------- Private Sub CommandButton1_Click() Dim myString Dim N On Error Resume Next For N = 1 To 3 Me.Controls("LAbel" & N + 1).Caption = "" Next N myString = Split(Range("A1").Value, Chr(10)) For N = LBound(myString) To UBound(myString) Me.Controls("Label" & N + 1).Caption = myString(N) Next N End Sub ------------------------------------------------------ 外してましたらご容赦願います。(^^;;; 以上です。
その他の回答 (3)
- Wendy02
- ベストアンサー率57% (3570/6232)
#1のWendy02です。 私は、なんともいえないですね。 しょせん、ラベルはラベルなんだろうと思います。 ワークシートのセルに反映させるのは、あまり関心しませんね。そんなに器用な表示は期待はできないと思います。 私なら、なぜ、ラベルでなくてはならないのか、というところから話が入ってしまいますからね。RichTextBox は、VBAにはないので、代用として、スプレッドシートコントロール(Spreadsheet1) を使ってみました。罫線なし、行数・列数表示をなくして、右から左に、一字ずつ表示をさせれば、上手く入ります。フォントの大きさとかは、セル幅とかは、ラベルと同じです。ただ、縦書き用のフォントではありませんから、「。、」あたりの表示がヘンです。
お礼
お礼が遅くなってすみません。何とか解決いたしました!ありがとうございます。
- taocat
- ベストアンサー率61% (191/310)
こんばんは。 行数分のラベルを用意すればいいのでは? 2行必要なら、ラベルを2つ配置して 1行目は、ラベル1へ 2行目は、ラベル2へ 3行必要なら、ラベルを3つ配置して 以下同文 以上です。
お礼
ご回答ありがとうございます。 できればそうしたいのですが、ちょっと問題が・・・。Captionはセルとリンクさせようとしています。ところが、そのセルが複数行あり、1行あたりの文字数も決まっていないので1行だけ抜き出してリンクさせるのが非常に困難なんです。 いま、他に質問をして1行ずつ抜き出し、最終的にはお答え頂いた方法でやろうと思っています。複数行縦書きが出来れば本当は一番良いので、引き続きご回答お待ちしています。よろしくお願いします。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 ラベルは、特別に縦書きモードはありません。 しかし、ラベルのプロパティで、ラベルの幅をフォントの幅に合わせる、または、フォント(Font)のサイズを大きくして、ラベルの幅に合わせることと、TextAlign を 2 の Centerにしてあげます。
補足
お早いご回答ありがとうございます。なるほど幅を変えるのですね。 しかし、書き忘れていたのですが実は2行ないし3行分あるんです。 いいアイデアはないでしょうか? ご回答ありがとうございます!
お礼
ありがとうございます。お礼が遅くなってすみません。おかげで成功いたしました!