VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

リンク元へ戻ります。 描画・画像関係のメニュー
1.Imageコントロールで画像を拡大・縮小・移動表示・印刷する
2.PictureBox コントロールで画像を拡大・縮小表示する
3.網掛け文字を表示及び印字
4.ピクチャーボックス上に円グラフを描画する
5.AVI(アニメーション)ファイルを表示する
6.ピクチャーボックスに表示・描画した画像・文字の保存及び消去方法
7.フォームの背景にグラデーションを描く(VBの標準の機能で)
8.上下左右の鏡像を得る(VBの標準の機能で)
9.ピクチャーを90度毎に回転させて表示(VBの機能で)
10.表示位置・印字位置(文字列)を揃える
11.画像ファイルをスクロール表示しながら連続読み込み
12.メモリDCを使っての画像表示(拡大・縮小・鏡像・180度回転)
13.図形の内部を塗りつぶす
14.
15.
16.
17.
18.
19.
20.その他、当サイト内に掲載の描画・画像に関するサンプル


10.表示位置・印字位置(文字列)を揃える
1.表示位置・印字位置(文字列)を揃える
2.
3.
4.
5. 
6. 

 下記プログラムコードに関する補足・注意事項 
動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6)
Option :[Option Explicit]
参照設定:追加なし
使用 API:
なし
その他 :
    :
このページのトップへ移動します。 1.表示位置・印字位置(文字列)を揃える
リストボックスに表示したり、印刷した時に文字列を揃えたい所にうまく揃わなかったり、微妙にずれる事があるかと思います。そのような時には、下記のプロシージャと等幅文字を使って見て下さい。

Option Explicit   'SampleNo=090  2002.05.17

Private Sub sFontSet(myObj As Object, _
      Optional FName As String = "MS ゴシック", _
      Optional FSize As Integer = 12, _
      Optional FBold As Boolean = False)
  With myObj
    .FontName = FName
    .FontSize = FSize
    .FontBold = FBold
  End With
End Sub

Private Function StrCut(ByRef myString As String, _
                ByVal LenN As Long) As String
  Dim i      As Long
  Dim j      As Long
  Dim k      As Long
  Dim myStringLen As Long
  Dim strTemp   As String
  If LenN < 1 Then myString = "": Exit Function
  myStringLen = LenB(StrConv(myString, vbFromUnicode))
  If LenN = myStringLen Then       '全部半角文字の場合
    StrCut = myString
    Exit Function
  ElseIf myStringLen < LenN Then     '文字数が足りない時
    StrCut = myString & String$(LenN - myStringLen, " ")
  Else
    strTemp = "": k = 0
    For i = 1 To Len(myString)     '文字数(半角換算)のカウント
      j = Asc(Mid$(myString, i, 1))
      If j >= 0 And j <= 255 Then  '半角の場合のカウント
        k = k + 1
        If k > LenN Then Exit For
        strTemp = strTemp & Mid$(myString, i, 1)
      Else
        k = k + 2         '全角の場合のカウント
        If k <= LenN Then
          strTemp = strTemp & Mid$(myString, i, 1)
        ElseIf k - 1 = LenN Then  '漢字分断の処理
          strTemp = strTemp & " "
        Else
          Exit For
        End If
      End If
    Next
    StrCut = strTemp
  End If
End Function

Private Sub Command1_Click()
  Dim PostalNo(2) As String
  Dim Address(2) As String
  Dim strName(2) As String
  Dim i      As Integer
  Picture1.AutoRedraw = True
  PostalNo(0) = "〒527-0000"
  Address(0) = "滋賀県 IW 八日市市 1-2-3"
  strName(0) = "蚊取 新語"
  PostalNo(1) = "〒527-1111"
  Address(1) = "滋賀県 HW 大津市 1-2"
  strName(1) = "仲居 摩砂廣"
  PostalNo(2) = "〒527-1234"
  Address(2) = "滋賀県 IW 彦根市 10-2"
  strName(2) = "草名木 剛史"

  sFontSet Picture1, "MS Pゴシック", 12
  For i = 0 To 2
    Picture1.Print PostalNo(i) & " " & Address(i) & " " & strName(i)
  Next i

  Picture1.Print
  sFontSet Picture1, "MS ゴシック", 12
  For i = 0 To 2
    Picture1.Print StrCut(PostalNo(i), 12) & _
        StrCut(Address(i), 28) & StrCut(strName(i), 14)
  Next i
End Sub

  図1.上記実行結果
 drawing10_01



半角文字2個が全角文字1個分の幅になるようなポイントの文字(等幅文字)を使用して下さい。

  MS 明朝 及び MS ゴシック

   文字ポイント  半角幅     全角幅

       9      90     180
    10     105     195
    11     120     225
    12     120     240
    14     150     285
    16     165     315
     18     180     360
    20     210     405

  幅の単位=twip
  1 センチは 567twip、1 インチは 1,440twip になります、1 インチは 72 ポイントになります。 

このページのトップへ移動します。 2.


このページのトップへ移動します。 3.


このページのトップへ移動します。 4.


このページのトップへ移動します。 5.


このページのトップへ移動します。 6.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)
表示位置を揃える  印字位置を揃える  文字列の表示位置を揃える




このページのトップへ移動します。