
教えて下さい!
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ランキング
-
好きな人の住所って知りたくな...
-
ドコモの補償サービスを使いま...
-
エクセルで作成した住所録から...
-
ExcelやAccessで住所と番地を分...
-
エクセルで、半角文字列を抽出...
-
アクセスの住所入力支援について
-
ネット閲覧で住所がバレる!?
-
筆まめVer.29はwindows11で動作...
-
筆まめの宛名を2行で表示する...
-
懸賞はがき、枠からはみ出てた...
-
海外郵便用の宛名ソフト
-
はがき作家フリーの住所録が開...
-
FGAファイル
-
至急! 筆まめver30で会社名・...
-
筆ぐるめ
-
筆まめver13の敬称一括変換につ...
-
パラメータが間違っています
-
電話番号などによる地図での住...
-
筆ぐるめのレイアウト画面はコ...
-
筆ぐるめで住所録データを共有...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ドコモの補償サービスを使いま...
-
好きな人の住所って知りたくな...
-
個人情報記入について
-
ExcelやAccessで住所と番地を分...
-
分籍をしても自分の住所は知ら...
-
エクセルで、半角文字列を抽出...
-
エクセルで作成した住所録から...
-
キャバクラ嬢が教える住所について
-
カーナビで名称登録をしても検...
-
JavaScript、プルダウン絞り込...
-
住所一覧にない住所があるのは...
-
バイトから渡された検便の封筒...
-
Accessで半角→全角に変更したい
-
差し込み印刷で住所が途中で切...
-
Accessの住所を分割するメリッ...
-
このドイツ語の意味は。。。?
-
住所から市町村名を取り出す
-
アクセスの住所入力支援について
-
ハイパーリンクを使用してエク...
-
筆ぐるめの使い方(Ver.11)
おすすめ情報