
教えて下さい!
Accessで宛名印刷のレポートを作っているのですが、
縦書きにした場合、半角のカタカナで入力された会社名や、住所の番地、ビルの階の数字が横に寝てしまいます。これを解消するために、StrConv関数を使って、全角の大文字に変換しようとしたのですが、うまくいきません。
たとえばレポートに会社名、住所、住所1のテキストボックスを配置し、会社名/住所は、「会社Address」テーブルから読み込み、住所1には、住所を全角に変換した住所を表示するとします。
レポートプロパティの「読み込み時」に以下のコード
住所1.value = StrConv([会社Address]![住所1], vbWide)
を記述したのですが、うまくいきません。
いい方法はないでしょうか。
あるいはもっと簡単にできる方法などはあるのでしょうか。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
Accessのはがき印刷ウィザードでレポートを作成すると次のようなプロシージャーが自動で作成されます。
変数stを文字列として取得し、その中の文字一つ一つを検査し"0123456789"のどれかが存在した場合、漢数字に変換するというものです。
rgchSBCSNum = "0123456789"
rgchDBCSNum = Chr$(-32177) & Chr$(-32176) & Chr$(-32175) & Chr$(-32174) & Chr$(-32173) & Chr$(-32172) & Chr$(-32171) & Chr$(-32170) & Chr$(-32169) & Chr$(-32168)
rgchKanjiNum = Chr$("-32422") & Chr$("-30486") & Chr$("-27663") & Chr$("-29105") & Chr$("-29076") & Chr$("-29476") & Chr$("-26534") & Chr$("-29003") & Chr$("-27478") & Chr$("-29725")
Private Function ToKanjiNum(st As String) As String
Dim stKanji As String, ch As String
Dim i As Integer, iNum As Integer
For i = 1 To Len(st)
ch = Mid$(st, i, 1)
iNum = InStr(1, rgchSBCSNum, ch, vbBinaryCompare)
iNum = IIf(iNum < 1, InStr(1, rgchDBCSNum, ch, vbBinaryCompare), iNum)
If iNum > 0 Then
stKanji = stKanji & Mid$(rgchKanjiNum, iNum, 1)
Else
stKanji = stKanji & ch
End If
Next i
ToKanjiNum = stKanji
End Function
No.2
- 回答日時:
テキストボックスのコントロールソースに直接
=StrConv([会社Address]![住所1], 4)
とするか(VBAとしてではないのでvbWideは使えません)
テキストボックスの名称を住所1以外(住所1A等)にして
フォーマット時イベントで
住所1A.value = StrConv([会社Address]![住所1], vbWide)
としてください。
もちろん#1の方の言う通り、クエリで設定する方法もあります。
この回答への補足
どうもありがとうございました。
No1さんのコメントにも書きましたが、半角を全角に変換すると、カタカナの縦書きはうまくいくのですが、
住所の番地などの数字とハイフンがおかしくなることを発見しました。
ハガキの縦書きを想定してるのですが、
いい方法があるでしょうか。
No.1
- 回答日時:
選択クエリを作成すると全角に変換できます。
手順
<準備>
(1) クエリの新規作成 窓からデザインビューを選択し、OKポタン
(2) 住所録があるテーブルを選択し、追加ボタン、閉じるポタン
(3) 半角のデータがあるフィールドをダブルクリック
たとえば[住所]・・・半角データがあるフィールド
<いよいよ更新クエリの変更と更新内容の設定です>
(4) (3)のつづきでメニューバーのクエリをクリック、更新(u)クリック
(5) レコード更新窓へ Strconv([住所],4)
上記の通り 4 と入れた後 更新クエリを実行すると全角に更新してくれますよ。
試してください。
成功を祈ってます。
この回答への補足
どうもありがとうございました。
vbWideが4,にあたるのですね。クエリではパラメータを聞いてきて悩んでいました。
全角にできたのはいいのですが、今度は
1."-(ハイフン)"が縦書きではハイフンが漢数字の"一"のようになり、縦棒にならない。
2.二桁以上の数字がたて並びになる。
との不具合がでました。
半角のカタカナ、数字まじりの住所を縦書きでおかしくならないようにするには、何が一番いいのか新たな問題が出てきました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IPアドレスやリモートホストで...
-
ドコモの補償サービスを使いま...
-
エクセルで作成した住所録から...
-
ExcelやAccessで住所と番地を分...
-
好きな人の住所って知りたくな...
-
キャバクラ嬢が教える住所について
-
差し込み印刷で住所が途中で切...
-
ACCESSで都道府県の抽出
-
ネット閲覧で住所がバレる!?
-
マイクロソフト・アクセス宛名...
-
筆まめV11のデータ移行方法につ...
-
筆まめの宛名を2行で表示する...
-
懸賞はがき、枠からはみ出てた...
-
筆まめVer.29はwindows11で動作...
-
開きまヘン
-
Wordでテキストボックスの枠線...
-
エクセルで作った住所データ(...
-
筆ぐるめの保存場所
-
エクセルで作成した住所録をCSV...
-
筆ぐるめのマイ住所録の中の住...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
好きな人の住所って知りたくな...
-
ドコモの補償サービスを使いま...
-
個人情報記入について
-
分籍をしても自分の住所は知ら...
-
キャバクラ嬢が教える住所について
-
ExcelやAccessで住所と番地を分...
-
エクセルで作成した住所録から...
-
エクセルで、半角文字列を抽出...
-
このドイツ語の意味は。。。?
-
合わせ名人について。エクセル...
-
住所録のエクスポートファイル...
-
バイトから渡された検便の封筒...
-
Accessで半角→全角に変更したい
-
差し込み印刷で住所が途中で切...
-
タクシー乗って行きたいところ...
-
ハイパーリンクを使用してエク...
-
Excelで作った2つの住所録の結...
-
IPアドレスやリモートホストで...
-
Access-郵便番号と住所の整合チ...
-
ソウルの郵便番号をしりたのですが
おすすめ情報