アプリ版:「スタンプのみでお礼する」機能のリリースについて

ExcelのVBAでユーザーフォーム上のラベルの文字列を縦書きには出来ないでしょうか?ご存じの方、ご教授願います。

A 回答 (4件)

こんばんは。



ラベルは、特別に縦書きモードはありません。
しかし、ラベルのプロパティで、ラベルの幅をフォントの幅に合わせる、または、フォント(Font)のサイズを大きくして、ラベルの幅に合わせることと、TextAlign を 2 の Centerにしてあげます。

この回答への補足

お早いご回答ありがとうございます。なるほど幅を変えるのですね。
しかし、書き忘れていたのですが実は2行ないし3行分あるんです。
いいアイデアはないでしょうか?
ご回答ありがとうございます!

補足日時:2006/11/09 19:17
    • good
    • 0

こんばんは。



行数分のラベルを用意すればいいのでは?

2行必要なら、ラベルを2つ配置して
  1行目は、ラベル1へ
  2行目は、ラベル2へ

3行必要なら、ラベルを3つ配置して
  以下同文

以上です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
できればそうしたいのですが、ちょっと問題が・・・。Captionはセルとリンクさせようとしています。ところが、そのセルが複数行あり、1行あたりの文字数も決まっていないので1行だけ抜き出してリンクさせるのが非常に困難なんです。
いま、他に質問をして1行ずつ抜き出し、最終的にはお答え頂いた方法でやろうと思っています。複数行縦書きが出来れば本当は一番良いので、引き続きご回答お待ちしています。よろしくお願いします。

お礼日時:2006/11/09 21:20

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
------------------------------------------------------

外してましたらご容赦願います。(^^;;;
以上です。
    • good
    • 0
この回答へのお礼

ありがとうございます。お礼が遅くなってすみません。おかげで成功いたしました!

お礼日時:2006/12/15 23:03

#1のWendy02です。



私は、なんともいえないですね。
しょせん、ラベルはラベルなんだろうと思います。
ワークシートのセルに反映させるのは、あまり関心しませんね。そんなに器用な表示は期待はできないと思います。

私なら、なぜ、ラベルでなくてはならないのか、というところから話が入ってしまいますからね。RichTextBox は、VBAにはないので、代用として、スプレッドシートコントロール(Spreadsheet1) を使ってみました。罫線なし、行数・列数表示をなくして、右から左に、一字ずつ表示をさせれば、上手く入ります。フォントの大きさとかは、セル幅とかは、ラベルと同じです。ただ、縦書き用のフォントではありませんから、「。、」あたりの表示がヘンです。
    • good
    • 0
この回答へのお礼

お礼が遅くなってすみません。何とか解決いたしました!ありがとうございます。

お礼日時:2006/12/15 23:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!