• ベストアンサー

横書きの半角数字を、縦表示にしても,横に「・・・」と並べるには?

ARCの回答

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.5

>実は…VBで具体的に記述していただけると、「!!!」でした。 ちょっと時間が空いたんで、実際に作ってみました。 フォームにピクチャボックス(Picture1),テキストボックス(Text1),ボタン(縦書きボタン)を配置して、以下のようにコーディングしてください。 Picture1のAutoRedrawはTrueに設定しときます。 テキスト中の$H(文字列)を縦中横表示します。 特殊書式の文法チェックとか、ピクチャボックス外にはみ出したときの処理とかは入ってません。 句読点の位置とかもおかしくなるんで、句読点についての処理も入れたほうがいいですね。 一応それなりにコメント入れましたが、不明点とかあったら補足してください。 **************************************************** Option Explicit Const MARGIN_TOP = 5 * 56.7 '上余白5mm Const MARGIN_RIGHT = 5 * 56.7 '右余白5mm Const LETTER_SPACING = 1 * 56.7 '字間1mm Const LINE_HEIGHT = 10 * 56.7 '行間10mm Private Sub Form_Load()  Me.Text1 = "これは$H(123)円です。" End Sub Private Sub 縦書きボタン_Click()  Dim Text As String  Dim DrawChar As String  Dim i As Long  Dim x As Single, y As Single '字を書く座標(xは行の中心線)  Dim StPos As Long, EdPos As Long '文字列内の位置情報  Text = Me.Text1    Me.Picture1.Cls  Me.Picture1.FontName = "MS ゴシック"  x = Me.Picture1.Width - MARGIN_RIGHT - (Me.Picture1.TextWidth("あ") / 2)  y = MARGIN_TOP  For i = 1 To Len(Text)   DrawChar = ""   '文字を一文字ずつ検査する。   Select Case Mid$(Text, i, 1)    Case vbCr, vbLf '改行コード     x = x - LINE_HEIGHT     y = MARGIN_TOP     If Mid$(Text, i + 1, 1) = vbLf Then i = i + 1    Case "$" '特殊書式     'TODO:異常な文法に対する処理を入れること          Select Case Mid$(Text, i + 1, 1)      Case "$" '"$$"は"$"一文字とみなす       DrawChar = "$"       i = i + 1      Case "H" '$H(文字列)は、文字列を縦中横表示       StPos = i + 3       EdPos = InStr(StPos, Text, ")", vbBinaryCompare)       DrawChar = Mid$(Text, StPos, EdPos - StPos)       i = EdPos      Case Else'書式指定が間違ってる       Debug.Assert True     End Select    Case Else    '通常の文字     DrawChar = Mid$(Text, i, 1)   End Select   '文字を描画   If DrawChar <> "" Then    With Me.Picture1     .CurrentX = x - (.TextWidth(DrawChar) / 2)     .CurrentY = y     Me.Picture1.Print DrawChar     y = y + .TextHeight(DrawChar) + LETTER_SPACING    End With   End If  Next i End Sub

iillyy
質問者

お礼

あまりにもご丁寧で・・・感激→ダウン気味(笑) ありがとうございました。

関連するQ&A

  • 縦書きで半角英数字を横書きにする

    ワードにおいて、縦書きでの書式で、数字半角2文字だけを横文字で表記するやり方を教えて下さい。 例えば 20世紀 という標記では 20はこのように横標記で、世紀は縦書きになります。 10円から20円 という標記では、10と20は横標記で、他は縦書きになります。 縦書きのビジネス本なのでよく使われています。 よろしくお願い申し上げます。

  • ワードの縦書きで、半角数字を縦表示にしたい

    ワードで縦書きの原稿を作っています。 このときに、たとえば、 平成18年9月20日 を縦書きにした場合、全角のの「9」は縦表示になりますが、半角の「18」や「20」は横を向いてしまいます。 これらを正しく縦に表示させる方法はないでしょうか?

  • ワードで縦中横をした文字の軸がズレる

    ワード2003で文章を作成しています。 縦書きの文章で「!!」「10」などのように半角文字を二つ横に並べたものをそのまま表示するために縦中横を使うのですが、そうして表示されたものが、他の普通の縦書き文字と中心線(というかベースライン)がズレてしまいます(左に寄ってしまう)。 これをきっちり揃えてきれいに見せるにはどうすればいいのでしょうか。 宜しくお願いします。

  • 縦書きにした時の数字を漢数字にしたい

    ワード2010を使って文字列の方向が横の時に 半角の数字で書いたデータがあります。 このデータの文字列の方向を縦に変えると、 当然ですが、半角の数字だけ縦書きに変換されずに残っていて困っています。 できれば、この半角数字を漢数字に変えたいのですが、 方法がわかりません。 どなたかご教授のほど、宜しくお願いします。

  • ワードで縦書き…縦中横について

    「WORD2003」で縦書き文章を作成しています。途中「!?」「!!」などの半角組みの文字を打った時は、横になった文字をその都度「縦中横」で縦にしているのですが面倒です。一度にまとめてすることは出来ないでしょうか? お分かりの方、いらっしゃいましたら教えて下さい。

  • 縦中横にした時の文字が少し下がることについて

     いつもお世話になっております。  ワードの縦書きで半角数字2文字を縦中横にした時、画像のように少し下がってしまい、他の文字と頭のラインが合わなくなってしまいます。  こうならないように設定で合わせる方法は、あるのでしょうか。  ご教示方、よろしくお願いいたします。

  • ワードの縦書きで2桁の数字を横に表示

    例えば、6月23日を縦書きにするとき、6はそのまま表示できるのですが、 23が2の下に3がきてしまい、半角にすると、横を向いてしまいます。 数字のところだけ横書きにして、横幅もぴったりおさめたいです。 オートシェイプや表を使えばできない事もないですが、あまり綺麗ではないです。 縦書きでは漢字を使うのが正式ですが、読みにくいので使いたくないです。 ワープロではできたのに・・・ 縦書きで日付けの書いてあるチラシなどによくあるのに、基本や応用の本に載ってないのはなぜ~

  • 縦書きで数字を横に並べて表示するには?

    説明が悪くて申し訳ないのですが 例題をあげて質問いたしますので宜しく御願いいたします。 Word2002を使っています。 文字方向を縦書きにし、“平成14年”を入力するのですが この“14”の“1”と“4”が横に並んだ状態で表示したいのです。 何か方法があるのでしょうか? 宜しく御願いいたします。

  • 縦書文書に二桁数字

    おはようございます。 すみません、今ワードで文書を作っているのですが、わからないことがありますので教えてください。 word、縦書きです。 1行内に二桁の数字を半角で入れたいのです。いえ、ちゃんと入るなら全角でも全然かまいません。 今、自分でやってみると、こぅ…横になっちゃいます。90度寝た感じです。 テキストボックスで入れるとできることはできるのですが、二桁数字を入力する部分がけっこう多くて面倒なのと、たぶん何かちゃんとした機能があるのではないかと思い…。 よろしくお願いします。

  • word差し込み印刷 半角カタカナ・数字→縦書き

    word2010使用です。 差し込み印刷を使って封筒印刷を作成しています。 元データのExcelに全角かな・数字・アルファベット、半角カナ・数字・アルファベットが 入っている住所を縦書き印刷したいのです。 元データの管理をしているのは私ではない為ここは訂正できません。 数字を縦書きにするのは、差し込みフィールドのスイッチに「\v」を入れると言うのは わかり入れてみました。でもこれでは半角カナが横書きのままでした。 半角カナを全角縦にするには「\* DBCHAR」を入れるというのもわかりました。 でもこれだと半角「-」が横のままになりました。 どちらも縦書きに表示させる方法はありますか? 1日検索しましたが見つけられませんでした(ToT) よろしくお願いいたします。