Page 325 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼半角カタカナを全角カタカナに ちょび 02/11/6(水) 10:31 ┗Re:半角カタカナを全角カタカナに つん 02/11/6(水) 10:43 ┣Re:半角カタカナを全角カタカナに ちょび 02/11/6(水) 10:48 ┗Re:半角カタカナを全角カタカナに ちょび 02/11/6(水) 14:15 ┗えっ?え〜〜っ(>_<) Help!! つん 02/11/6(水) 16:25 ┣Re:えっ?え〜〜っ(>_<) Help!! 角田 02/11/6(水) 17:37 ┗1文字ずつかなぁ JuJu 02/11/6(水) 19:50 ┣ありがとー つん 02/11/6(水) 22:14 ┗Re:1文字ずつかなぁ ちょび 02/11/7(木) 8:59 ┗遅まきながら参加 Jaka 02/11/7(木) 9:11 ┗気になったことが... JuJu 02/11/8(金) 19:45 ┗JuJuさんに言われて...。 Jaka 02/11/11(月) 13:34 ┗要望はないけど... JuJu 02/11/11(月) 15:19 ┗Re:要望はないけど... でれすけ 02/11/11(月) 16:39 ─────────────────────────────────────── ■題名 : 半角カタカナを全角カタカナに ■名前 : ちょび ■日付 : 02/11/6(水) 10:31 -------------------------------------------------------------------------
質問です。 シート全体に対して半角カタカナを全角カタカナに変更したいのですが・・・? よろしくおねがいします。 |
ちょび さん、おはようございます。 >シート全体に対して半角カタカナを全角カタカナに変更したいのですが・・・? >よろしくおねがいします。 こんなんでどうでしょうか? Sub test() Dim r As Range For Each r In Worksheets("Sheet1").UsedRange r.Value = StrConv(r.Value, vbWide) Next r End Sub あ、でも、これやったら、半角アルファベットも全角になってしまうか・・・ あかんかな? |
▼つん さん: OKです。 Webで公開するためのデータの準備なんで 英数字も全角でよいのです。 ありがとうございました!! |
▼つん さん: 追加なんですが、ちなみにカナだけを変換する場合って???? |
>追加なんですが、ちなみにカナだけを変換する場合って???? 一文字ずつ文字コードかなんかで見ていかんとあかんかな? で、関数化すればいいかな? 考えてみるけど、時間かかりそう! 誰か助けて下さい〜 |
>誰か助けて下さい〜 ヘルプ受領しました♪ ↓のDLサイトの下の方に、でれすけさんの 『半角全角変換 Ver1.0.0 (アドイン)』 というのがありますので試してみて♪ 文字種ごとに変換できます http://bird.zero.ad.jp/~zap50064/freesoft/Tools.html |
みなさん、こんにちはぁ >一文字ずつ文字コードかなんかで見ていかんとあかんかな? 1文字ずつかなぁ^^; 目の前のASCII表によると、半角カタカナは、ヲ から ゚ のようです。 Sub test() Dim r As Range Dim s As String Dim i As Long For Each r In Worksheets("Sheet1").UsedRange s = r.Value For i = 1 To Len(s) If Mid(s, i, 1) Like "[ヲ-゚]" Then Mid(s, i, 1) = StrConv(Mid(s, i, 1), vbWide) Next If r.Value <> s Then r.Value = s Next r End Sub もっといい方法が見つかると良いけど。 ではではぁ |
角田先生、JuJu師匠 フォローありがとうございました。 JuJuさんのコード参考になりました。 だいたいそんな感じかな〜って思ってたのだけど、 「カナ」をどう判断すればいいか悩んでました。 どうもありがとう! |
▼JuJu さん: ありがとうございます。 本当に助かります。 皆々様本当にありがとうございました。 またよろしくお願いします。 |
濁音の部分は、省略させていただきました。 Sub ggg() Dim 対象文字 As String, 変換文字 As String, CNT As Long, 変換範囲 As Range 対象文字 = "ァィェゥォャュョアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワンヲ" 変換文字 = "ァィゥェォャュョアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホ" & _ "マミムメモヤユヨラリルレロワンヲ" Set 変換範囲 = Range(ActiveSheet.UsedRange.Address(0, 0)) For CNT = 1 To Len(対象文字) 変換範囲 = Application.Substitute(変換範囲, Mid(対象文字, CNT, 1), Mid(変換文字, CNT, 1)) Next Set 変換範囲 = Nothing End End Sub。 |
Jakaさん、ちょびさん、こんにちはぁ 私のサンプル、濁点(半濁点)の変換がいまいちですね。 「バ」を「バ」ではなく「ハ゛」って変換するみたい。1文字ずつ変換しているから当然なんですけど。 要望があれば、修正しますよ。Jakaさんベースの方が対応が簡単そうですね。 ではではぁ |
JuJu さん こんにちはぁ > >私のサンプル、濁点(半濁点)の変換がいまいちですね。 >「バ」を「バ」ではなく「ハ゛」って変換するみたい。1文字ずつ変換しているから当然なんですけど。 > >要望があれば、修正しますよ。Jakaさんベースの方が対応が簡単そうですね。 JuJuさんに言われて自分のを試してみたら。 ガギグゲゴ ↓ カギキギクギケギコギ となってしまいました。 省略と偽って手抜きするんじゃなかった。 手抜きした私が悪いです。 すみません。 |
Jakaさん、こんにちはぁ Jakaさんのを勝手に改造^^; 変換文字 = "" For i = Asc("ヶ") To Asc("ァ") Step -1 変換文字 = 変換文字 & Chr(i) Next For CNT = 1 To Len(変換文字) 変換範囲 = Application.Substitute(変換範囲, StrConv(Mid(変換文字, CNT, 1), vbNarrow), Mid(変換文字, CNT, 1)) Next こんなんでどうでしょう^^ ではではぁ |
こんにちわ 1553で角田さんが紹介されている私のアドインのキモの関数部分です。 要は、一文字づつ検査していっているのですが、 半角カタカナの時は次の文字が濁点、半濁点も検査するということをしています。 ConvFullHalf(文字列,optkana:=vbWide) みたいな感じで使ってもらえると思います。 Public Function ConvFullHalf(ByVal Str As String, _ Optional ByVal optKana As Integer = 0, _ Optional ByVal optHira As Integer = 0, _ Optional ByVal optAlph As Integer = 0, _ Optional ByVal optDigt As Integer = 0, _ Optional ByVal optSymb As Integer = 0, _ Optional ByVal optSpac As Integer = 0) Dim C As String, retStr As String Do Until Str = "" C = Left(Str, 1) Str = Right(Str, Len(Str) - 1) Select Case C Case "ぁ" To "ん" ' ひらがな retStr = retStr & StrConv(C, optHira) Case "A" To "Z", "a" To "z", "A" To "Z", "a" To "z" ' アルファベット retStr = retStr & StrConv(C, optAlph) Case "0" To "9", "0" To "9" ' 数字 retStr = retStr & StrConv(C, optDigt) Case " ", " " ' スペース retStr = retStr & StrConv(C, optSpac) Case Else Select Case Left(StrConv(C, vbNarrow), 1) Case Chr(&H21) To Chr(&H2F), Chr(&H3A) To Chr(&H40), _ Chr(&H5B) To Chr(&H60), Chr(&H7B) To Chr(&H7E) ' 記号 retStr = retStr & StrConv(C, optSymb) Case Chr(&HA1) To Chr(&HDF) ' カタカナ If Left(Str, 1) = Chr(&HDE) Or Left(Str, 1) = Chr(&HDF) Then retStr = retStr & StrConv(C & Left(Str, 1), optKana) Str = Right(Str, Len(Str) - 1) Else retStr = retStr & StrConv(C, optKana) End If Case Else retStr = retStr & C End Select End Select Loop ConvFullHalf = retStr End Function |