マイクロソフトエクセルのまとめ記事はこちら
Microsoft Office ブログランキングへ
封筒印刷
この内容で封筒印刷等も実現できると思います。
よく使用する「長3封筒」「角2封筒」の大きさに合わせて、
配置を考えれば実現できそうです。
ここで少し高度な技を!
レポート上で数字を漢数字に変換してみましょう。
引用させてもらったサイト
こちら
下のような内容のコードを記載した標準モジュールを作成します。
Public Function NumToKanji(strNum As String) As String
'半角数字を漢字の数字に変換する
Dim strKanji As String
Dim strCharacter As String
Dim intPos As Integer
Dim iintLoop As Integer
Const cstrNum As String = "0123456789"
Const cstrKanjiNum As String = "0一二三四五六七八九"
'引数を1文字ずつ変換するループ
For iintLoop = 1 To Len(strNum)
'引数より1文字を取り出し
strCharacter = Mid$(strNum, iintLoop, 1)
'その1文字が半角数字か(cstrNumに含まれるか)チェック
intPos = InStr(1, cstrNum, strCharacter, vbBinaryCompare)
If intPos > 0 Then
'半角数字の場合は漢字に変換
strKanji = strKanji & Mid$(cstrKanjiNum, intPos, 1)
Else
'半角数字でなければそのまま
strKanji = strKanji & strCharacter
End If
Next iintLoop
'漢字の文字列を返り値に設定
NumToKanji = strKanji
End Function
そしてレポート内に「非連結」のテキストボックスを作成して、
コントロールソースに「=NumToKanji([住所1])」と記載します。
注意として、今使用している「住所1」のテキストボックスに
追記してはいけません。
エラーになります。(循環エラー)
必ず非連結の新しいテキストボックスを作成してください。
これをレポート上で表示すると下記のようになります。
赤枠の部分です。
それからこのテキストボックスは縦書きに設定しています。
この方が自然ですね。
もう一つ紹介しておきましょう。
数字はそのままで「−」だけ縦書きにしています。
これも標準モジュールを追加します。
引用させてもらったサイト
こちら
コードは下記です。
Public Function AddressVConv(S) As String
Dim i As Long, P As Long, C As String
If IsNull(S) Then Exit Function
S = Replace(S, "-", "|")
AddressVConv = Space(Len(S) * 3)
P = 1
For i = 1 To Len(S) - 1
C = Mid$(S, i, 1)
If C & Mid$(S, i + 1, 1) Like "[0-9][0-9]" Then
Mid$(AddressVConv, P, 1) = C
P = P + 1
Else
Mid$(AddressVConv, P, 3) = C & vbCrLf
P = P + 3
End If
Next
Mid$(AddressVConv, P, 1) = Mid$(S, i, 1)
AddressVConv = RTrim$(AddressVConv)
End Function
新たな非連結のテキストボックスを作り、
コントロールソースに「=AddressVConv([住所1])」と記載します。
この結果が上の赤枠です。
このテキストボックスは横書きのままです。
配置でセンターにしているだけです。
一文字ごとに見ていき「−」があれば「|」に変換し、
「−」でなければ改行を入れるという内容です。
先に紹介したコードは「半角数字」が見つかれば「漢数字」に
変換という内容でした。
今回は「−」だけ縦書きにするというものです。
どちらも捨てがたいものがあります。
お好みで使用されてはどうでしょうか。
タグ: Accessで宛て名印刷
【このカテゴリーの最新記事】