ちょっと先の未来クイズ第4問

エクセル2000ですが、住所録を作ってワードでハガキ作成。住所録作成時に番地を半角数字で入れてますが、漢数字は、最初から入れてないとダメでしょうか?ひょっとして数字が漢数字に変更なんては、無理でしょうか?

A 回答 (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
    • good
    • 0
この回答へのお礼

大変、申し訳ありませんでした。微に入り細に入り説明をして頂き有難うございました。質問を出させて頂いた甲斐がありました。一度には出来ませんが手間隙をかけて挑戦したいと思います。又の時は、よろしくお願いいたします。本当に有難うございました。

お礼日時:2006/09/12 23:06

追伸:


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 関数や書式設定は、対象が数字でないと使用できませんので、このような方法になっております。
    • good
    • 0
この回答へのお礼

重ね重ねの回答を頂き、有難うございました。訂正して使います。

お礼日時:2006/09/12 23:40

Excel側で処理する方法と,Word側で共通スイッチを設定する方法があります。



Excel側で処理する方法は,表示の仕方を「DBNUM1」を用いて漢数字にしておいてから書式を引き継いでWordへ差し込むとか,「NUMBERSTRING」という関数を用いてあらかじめ変換しておく方法があります。
http://itpro.nikkeibp.co.jp/article/NPC/20060214 …

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
    • good
    • 0
この回答へのお礼

すみませんでした。@の件は大変参考になりました。エクセル側で処理したく思いますが他も試してみます。誠に有難うがざいました。

お礼日時:2006/09/12 23:11

はじめまして



こんなマクロを見つけました。
ご要望にぴったりだと思います。

http://www.bcap.co.jp/hanafusa/VBHLP/kansuuji.htm

参考URL:http://www.bcap.co.jp/hanafusa/VBHLP/kansuuji.htm
    • good
    • 0
この回答へのお礼

早々と回答頂き有難うございました。マクロの箇所を試してみたいと思います。参考URLの件、参考になりました。丁寧に有難うございました。

お礼日時:2006/09/12 23:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!