No.4ベストアンサー
- 回答日時:
こんにちは。
#2の回答者です。
>Unicodeのみの文字判定ツールというのはどういうものですか?
それ自体の理屈は簡単です、その文字コードを、JISに切り替えたときに、文字化けするかどうか、というものです。ただ、それは、JIS,SJIS,区点,Unicode 共有の文字コード検索のアドインで、ずいぶん前に、私のVBAの力を見てもらうためにも作ったものです。
Yahoo のブリーフケースには公開してあるのですが、それを、ここで紹介すると削除されてしまうので、その中身を抜き出して作ってみました。なにぶん、昔に作ったものですから、おかしい部分があるかもしれません。
一応、こちらで試した範囲では、Unicode のみの文字は、記号を含めて、すべて検出するはずです。
JISは、もともと日本独特のものですから、海外に同様のツールはないし、なぜか、ライター用のJIS/区点用のツールがどんどん減ってしまって、Wordに標準装備されていないので、本当は、私も困っています。こらちは、標準的に、Wordを使っているわけではありませんが、納品はWord指定です。
もう1つ困るのは、Office 2007 では、Word側は、Excel側よりも、内部的に、改変されている度合いが高いようです。Word 2003 のVBAコードが、Word 2007 とは共有しないようです。今回のコードは、Word 2003 までしか分かりません。
-------------------------------------------------
'今回は、Wordの標準モジュールに入れてください。
Public Const MYCOLOR As Long = wdColorRed '色-赤
Sub UnicodeLettersSearch()
'Unicode検索プログラム
Dim mySelection As Selection
Dim num As Long, t As Long
Dim TowByte() As String
Dim j As Long
Dim i As Long
Dim ltr As String
Selection.HomeKey Unit:=wdStory
Selection.EndKey Unit:=wdStory, Extend:=wdExtend
Set mySelection = Selection
For i = 1 To Len(mySelection)
ltr = Mid$(mySelection, i, 1)
num = AscW(ltr)
t = Asc(ltr)
If (num <> 63 And t = 63) Or (num > 0 And num < 1000 And num <> t) Then
ReDim Preserve TowByte(j)
TowByte(j) = ltr
j = j + 1
End If
Next i
If j = 0 Then
MsgBox "単語は見つかりません。", vbInformation
Selection.HomeKey Unit:=wdStory
Exit Sub
End If
Application.ScreenUpdating = False
For j = 0 To UBound(TowByte)
WordHilightPrc TowByte(j)
Next
Application.ScreenUpdating = True
Selection.HomeKey Unit:=wdStory
End Sub
Private Sub WordHilightPrc(ByVal myStr As String)
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Highlight = True
With Selection.Find
.Text = myStr
.Replacement.Text = myStr
.Replacement.Font.Color = MYCOLOR
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Wendy02さん、お答えありがとうございます。
文字判定ツールやってみました。
すごいです!希望どおりのものです。
とりあえず、こちらを使わせていただこうと思います。
大変助かりました。
ありがとうございました。
No.3
- 回答日時:
> 「はしご高」など、UNICODEにあって、JISにない文字のみ強調したい
> です。
[PRB] SHIFT - JIS と Unicode 間の変換問題 - Microsoft
http://support.microsoft.com/kb/170559/ja
この話ね・・・398個の文字コードチェックすることになるけど?
たとえ話で、聞いてね
Dim usChar As Object
Dim usCode As String
For Each usChar In ActiveDocument.Range.Characters
usCode = Hex(AscW(usChar.Text))
Select Case usCode
Case "2252", …, "9AD9", …
usChar.Font.Color = wdColorRed
usChar.Bold = 1
Case Else
usChar.Font.Color = wdAnimationNone
usChar.Bold = 0
End Select
Next usChar
の様に、Caseのところで398個並べるとか・・・
No.2
- 回答日時:
こんにちは。
ご質問の意味は、JISで検索して、それ以外のものを吐き出すということですね。ところが、VBA内もUnicode なので、一旦、検索をJISに替えないといけないわけですが、それが出来るか分からないですね。通常、私はもっと簡単な方法しかしていないからです。どの程度のものを望んでいるかにもよります。
たぶん、出来るような気はするのですが、わざわざ、そういうコードを作るのも、自分自身のことなので、面倒なのです。あえて、WordをJISに切り替えて、吐き出すという方法もないというわけではないのですが、試したことがありません。非JIS、Unicodeのみの文字判定ツールは作ったことがありますが、遊びの範囲です。
私は、本当に簡単なことですが、メモ帳やテキストエディタの標準仕様は、JISですし、また、ExcelもJISなので、テキストで貼り付けて、そこで、文字化け「?」を探してしまいます。特に、米国系のニュースサイトは、Unicode 文字が出てきてしまい、本物の「?」かどうか、ちょっとみた分には見分けが付かないことも多いですが。
私の使っているUnicode 文字の正規表現検索(テキストエディタから)
(本物か違うものか区分けが出来ませんが、あまり全体には影響ありません。)
検索値
(\s)\?(\s)|^[??](\s*)
お答えありがとうございます。
簡単にはできないかもしれませんね。
Unicodeのみの文字判定ツールというのはどういうものですか?
現在、秀丸に貼り付けて、保存するときに警告ダイアログがでるので、それで対応しています。
あらかじめ、WORD上で処理できたらな~と思い、質問しました。
また、いい案がありましたら、お願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
記号まるア
-
AUTO-CADで文字の太さを太くす...
-
PDF elementで白文字?というか...
-
“髙”という字の出し方教えてく...
-
Shift_JISで表示できて、UTF-8...
-
「~が言うには」の違う言い方
-
DXFをAutoCADで開くと文字位置...
-
漢字を出したい!
-
至急お願いします!! Wordで、...
-
Word で項目番号 ○の21 から...
-
『unicode形式の文字を含んでい...
-
イラストレーターで文字が半角...
-
Excelでヘッダーフッターの文字...
-
単語登録で・・
-
VBA 上付き、下付き文字の判定
-
文字にうりよくで、〜いれると1...
-
エクセルの「IF」の結果の文...
-
PDFファイルの再印刷での劣化を...
-
Thunderbirdの添付ファイル名に...
-
ノーツ送信する際の多言語mine...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
AUTO-CADで文字の太さを太くす...
-
漢字を出したい!
-
記号まるア
-
DXFをAutoCADで開くと文字位置...
-
Shift_JISで表示できて、UTF-8...
-
“髙”という字の出し方教えてく...
-
PDFまたはTIFFファイルに文字を...
-
エクセルの「IF」の結果の文...
-
「~が言うには」の違う言い方
-
Thunderbirdの添付ファイル名に...
-
word の文字入力 文字が青色に...
-
PDF elementで白文字?というか...
-
Word で項目番号 ○の21 から...
-
ノーツ送信する際の多言語mine...
-
今更ながら小さい文字の打ち方
-
フォトショップで文字入力をす...
-
Word文書に、チェックマーク(...
-
AutoCAD 複数の文字を1つの文字...
-
至急お願いします!! Wordで、...
-
「てぃ」という文字をローマ字...
おすすめ情報