初心者の質問で申し訳ありません。
今、葉書印刷のフォームを作ろうとしているのですが、
文字を縦書きにする方法がよくわかりません。
テキストボックスのMultiLineをTrueにすれば、縦書きっぽくなるのですが、
”−”は縦にならず横のままで表示されてしまい、”()”を表示しようとすると、すべて一列に表示してしまうため、ばらばらになってしまいます。
どのようにすれば良いのかまったくわかりません。よろしくお願いします。
また、ラベルでも縦書きにする事は可能なのでしょうか?
専用のコントロールを使うのが一番早いですね。
あとは,APIでゴリゴリと書くか……。
標準のコントロールでは縦書き表示はまともにできません。
see : CreateFont API
RichTextBoxを使うなら、たとえばこんなかんじ
Option Explicit
Private Declare Function SendMessage Lib "user32.dll" _
Alias "SendMessageA" _
(ByVal hwnd As Long, _
ByVal Msg As Long, _
ByVal wParam As Long, _
lParam As Any) As Long
Private Sub Command1_Click()
Dim lngWin32apiResultCode As Long
With RichTextBox1
.Visible = False
.Text = "(あい_うえお)" & vbCrLf & "(かき_くけこ)"
lngWin32apiResultCode = _
SendMessage(.hwnd, _
&H44D&, _
&H2&, _
ByVal CLng(&H400000))
.Visible = True
End With
End Sub
具体的にはラベルの縦書きはどのAPIを使用すればよいのでしょうか
解答よろしくおねがいします^^
ラベルに縦書きをする機能はありません。
PictureBoxに手書きしましょう。
APIのなまえはわすれましたけど、"VB 縦書き"などで、
検索をしてみるといいでしょう。
または、一文字ごとに改行を入れても縦に表示できます。
ツイート | ![]() |