- ベストアンサー
エクセル住所録でワードのハガキ作成?
エクセル2000ですが、住所録を作ってワードでハガキ作成。住所録作成時に番地を半角数字で入れてますが、漢数字は、最初から入れてないとダメでしょうか?ひょっとして数字が漢数字に変更なんては、無理でしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 私は、ちょうど、それ専用のWord用、Excelデータの漢数字変換プログラムを作りましたが、ご希望に沿えるものか、設定などの手間からすると、ちょっとなんとも言えません。 はがき打ち出し用の専用ソフトのほうがよいのではないか、と思います。 なお、#1さんのものは、残念ながら、Excel VBAではなく、Visual Basic(non VB.Net)のコードです。Excel VBAに移植は出来ますが、用途としては、少し違います。 '---------------------------------------------------- 設定の仕方: データのシートのシートタブを右クリック-コードの表示で以下を貼り付けます。 次に、 Const FROW As Integer = 1 '住所の最初の行 Const FCOL As Integer = 1 '住所の最初の列 これを書き換えます。今は、1行目、1列になっていますが、これは、「A1」からデータが始まります、ということです。 一旦、Alt+ Q で、その画面を締めます。 次に、ワークシート画面で、表示(V)-ツールバー-コントロールツールで、 コマンドボタン□をクリックして、適当なセルに貼り付けます。 それをもう一度繰り返して、もうひとつのコマンドボタンを□貼り付けてください。 そうしたら、最初のボタン□をダブルクリック、もう一つのボタン□もダブルクリック そうすれば、ボタンはそれぞれ設定されます。 注意:コマンドボタンは、シートには何もないものとして書かれていますので、もしある場合は、CommandButton の次の数字が変わります。その場合は、ご自身で修正してください。 最初のボタンに右クリック-コマンドボタン オブジェクトで、-編集 ホームで最初の行に飛んで、「漢数字」 もう一つの方は、「数字」 と入れて、うまく字が収まったと思ったら、コントロールツールバーの「青い三角定規」をオンからオフにクリックすると、それで出来上がりです。ボタンの大きさのバランスが悪いようだったら、「青い三角定規」を押して、その囲まれたラインの「・(点)」をドラッグして形を整えてください。 後は、邪魔なコントロールツールバーを隠してしまってください。 以下は、Excel2000で作られたものですが、今、Excel2003で試してみると、Excel2003 VBAは、どうやらおかしなバグがあるようですので、それに合わせて調整しました。これは、数年前に作ったもので、若干、今の私の書き方と違います。 '---------------------------------------------------- 'シートモジュール専用 '---------------------------------------------------- 'Option Explicit Private Const FROW As Integer = 1 '住所の最初の行 Private Const FCOL As Integer = 1 '住所の最初の列 Private Sub CommandButton1_Click() Dim sanFig Dim kanFig Dim i As Integer, k As Integer, j As Integer Application.ScreenUpdating = True i = 0 j = 0 k = 0 sanFig = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "-", "―") kanFig = Array("〇", "一", "二", "三", "四", "五", "六", "七", "八", "九", "-", "-") Do Until IsEmpty(Cells(FROW + j, FCOL).Value) = True For i = 0 To 11 If Cells(FROW + j, FCOL).Value Like "*[0-9-]*" = True Then Cells(FROW + j, FCOL).Replace What:=sanFig(i), Replacement:=kanFig(i), LookAt:=xlPart, _ MatchCase:=False, MatchByte:=False End If Next i If k = 0 Then k = 1 Else k = 0: j = j + 1 Loop Application.ScreenUpdating = True MsgBox "漢数字に変換しました。" End Sub Private Sub CommandButton2_Click() '漢数字からアラビア数字に変換 Dim sanFig Dim kanFig Dim i As Integer, k As Integer, j As Integer i = 0 j = 0 k = 0 Application.ScreenUpdating = False kanFig = Array("〇", "一", "二", "三", "四", "五", "六", "七", "八", "九", "-", "―") sanFig = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "-", "-") Do Until IsEmpty(Cells(FROW + j, FCOL).Value) = True For i = 0 To 11 If Cells(FROW + j, FCOL).Value Like "*[〇一二三四五六七八九[-]]*" = True Then If k = 1 Then Cells(FROW + j, FCOL).Value = "'" & Cells(FROW + j, FCOL).Value Cells(FROW + j, FCOL).Replace What:=kanFig(i), Replacement:=sanFig(i), LookAt:=xlPart, _ MatchCase:=False, MatchByte:=False End If Next i If k = 0 Then k = 1 Else k = 0: j = j + 1 Loop Application.ScreenUpdating = True MsgBox "アラビア数字に変換しました。" End Sub
その他の回答 (3)
- Wendy02
- ベストアンサー率57% (3570/6232)
追伸: Option Explicit から8行目辺りに、 Dim i As Integer, k As Integer, j As Integer Application.ScreenUpdating = True とありますが、 正しくは、 Dim i As Integer, k As Integer, j As Integer Application.ScreenUpdating = False '訂正後 でした。実際に動作を確認するために、そのような設定になっていました。お使いのようなら、訂正をお願いします。なお、Excelでは、数字でないものに対しては、NumberString 関数や書式設定は、対象が数字でないと使用できませんので、このような方法になっております。
お礼
重ね重ねの回答を頂き、有難うございました。訂正して使います。
- tokpy
- ベストアンサー率47% (1313/2783)
Excel側で処理する方法と,Word側で共通スイッチを設定する方法があります。 Excel側で処理する方法は,表示の仕方を「DBNUM1」を用いて漢数字にしておいてから書式を引き継いでWordへ差し込むとか,「NUMBERSTRING」という関数を用いてあらかじめ変換しておく方法があります。 http://itpro.nikkeibp.co.jp/article/NPC/20060214/229266/?ST=pc_sokko_print Word側で処理する場合ですが,Word2000では,フィールドコードの文字書式スイッチ「\*dbnum1」を使うと良いと思います。 http://ikutawasabi.hp.infoseek.co.jp/f91.htm 縦書きの場合は,フォント名に「@」が付いている縦書きフォントにしておいた方がいいかもしれません。(例えば,「1-2-3」のようにハイフンが入っている場合) もし,「@」が付いたフォントが一覧になければ,自分で「@」を打ち込んでください。(例:「MS明朝」→「@MS明朝」にする) Word2002以降では,縦書きに変換するフィールドコードがあるようです。 http://www.relief.jp/itnote/archives/001624.php
お礼
すみませんでした。@の件は大変参考になりました。エクセル側で処理したく思いますが他も試してみます。誠に有難うがざいました。
- hirorin00
- ベストアンサー率50% (446/884)
はじめまして こんなマクロを見つけました。 ご要望にぴったりだと思います。 http://www.bcap.co.jp/hanafusa/VBHLP/kansuuji.htm
お礼
早々と回答頂き有難うございました。マクロの箇所を試してみたいと思います。参考URLの件、参考になりました。丁寧に有難うございました。
お礼
大変、申し訳ありませんでした。微に入り細に入り説明をして頂き有難うございました。質問を出させて頂いた甲斐がありました。一度には出来ませんが手間隙をかけて挑戦したいと思います。又の時は、よろしくお願いいたします。本当に有難うございました。