アプリ版:「スタンプのみでお礼する」機能のリリースについて

ワードの文字列として、例えば、第1のあんアん亜龠123aがあります。
この文字列の英数字に色をつけようとすると、
For Each c In Target
wkText = StrConv(c.Value, vbWide)
c.Value = wkText
For i = 1 To Len(wkText)
X = Mid(wkText, i, 1)
If X Like "[0-9a-z]" Then
With c.Characters(Start:=i, Length:=1).Font
.Name = "MS ゴシック"
.FontStyle = "太字"
.ColorIndex = 3
End With
End If
Next
Next
のコードを使います。
すると、第1の文字の「1」にも適用されて太字で赤くなります。
そうではなくて、第1の文字の「1」には適用されないで、
第1のあんアん亜龠123aのうち、「123a」についてのみ適用されて太字で赤くなるようにしたいのですが、どうしたら良いでしょうか。
お教えねがいます。

A 回答 (1件)

こんにちは。



QNo.4158941 で書かせていただいた者です。
昨日の質問は、そのまま締められてしまいましたので、こちらに共通する部分をあえて書かせていただくようにします。

レスが付かないというのは、掲示板の回答者群の能力の問題と、もう一つは、質問の内容の問題があります。
それはよく認識なさってから、ご利用になってください。

回答者もイチゲンの方と常連の方がいます。常連の方は、それ相応に責任を持って書いていますから、もし、お礼や補足に書いた場合、回答者自身も仕事を持っている方がほとんどですから、ある程度の猶予を見て閉じるようにしてください。

QNo.4158941は、どのような原稿になっているのか分からないので、文中でも行えるように作ったのです。

今後、私があまり頻繁には書けないとは思いますが、「出来ませんでした」というな文章のままで、締められると、後々、ここでご質問者さんの質問をお見かけしても、どういう対応をとってよいのかチュウチョすることになってしまいます。もちろん、掲示板は、一期一会でしかありませんが、それでも、同じ人に、数年に渡り10回以上も回答し続けている方や、ご質問者専用のファイルを用意している方もいて、すぐに前の続きから回答できるようになっているものもあります。

それと、QNo.4158941の私のコードの片方はサブルーチンであって、二つで一つのマクロです。二つで使わないと動きません。また、パターンが違えば、何も起こりません。

文中の中でも、同じパターンの中でしたら、色が変わるように作られています。

>QNo.4138489 うしろ側の英数字のみ赤くするにはどうしたら?については、エクセルでした。

>ワードの文字列として、例えば、第1のあんアん亜龠123aがあります。

と書いてあるに、ご質問は、Excelなのですね。
このご質問のコードの、Target では分かりかねます。Excel用をWordに直してほしいとも読めます。私たち多くは、ご質問の文章を重視します。コードの、だいたいは素人の方だと思うので、アテにはしておりません。また、回答している方も、ほとんどWordマクロは分からない方がほとんどです。

QNo.4158941 の
>特許の技術文書は、英数字も半角厳禁です。全部べたうちです。

私が以前仕事をした特許法人の文章作成要綱をチェックしました。英数字は半角と決められていますし、多くの執筆原稿のワープロ規則では、英数字は半角と決められていますから、違う約束事は、事前におっしゃってください。

それから、単純な内容でしたら、また、単純な解答があります。
Wordでも、リストなどの場合と、文章の場合では、かなり違います。昨日より重ねて書きますが、そうした情報は事前に提示するのはマナーです。本来、ExcelならExcelのバージョン、WordならWordのバージョンも書くのが掲示板のマナーです。また、最初レイアウトを含めた内容と希望する結果を書くことも必要なことが多いです。マクロコードは、ある程度の実力がないと、あまり意味がありません。

昨日の、[\u3041-\u30FE\u4E00-\u9FA5\uff5B-\uff9f]は、Unicode の日本字をすべてサポートする場合に書くスクリプトです。通常は、[ぁ-龠]まででよいのですが、含まれていないものがあります。

以下は、WordもExcelもリストになっているものに対して色が変わります。

'**Excel用**


Sub TestCharCol()
'参照設定 Microsoft VBScript Regular Expression でも可
'ただし、インスタンスを設けてください。Dim Re As New RegExp
Dim Re As Object
Dim Matches As Object
Dim Match As Object
Dim myStr As String
Dim i As Integer
Dim n As Integer
Dim c As Variant
  Set Re = CreateObject("VBScript.RegExp")
  With Re
    .Pattern = "[ぁ-龝](\w+'?)$" ''"日本字+記号+'{0か1}(最後)"
    .IgnoreCase = True
    .Global = False '今回は、True は使わない
    '画面のちらつきを押さえる
    Application.ScreenUpdating = False
    For Each c In Range("A1", Range("A65536").End(xlUp))
      '一旦半角にしている*
      myStr = StrConv(c.Value, vbNarrow)
      Set Matches = .Execute(myStr)
      If Matches.Count > 0 Then
        For Each Match In Matches
        i = Match.FirstIndex + 1
        n = Match.Length - 1
        c.Characters(Start:=i, Length:=n).Font.ColorIndex = 3 '赤
        '文字の取り出し
        'c.Offset(, 1).Value = Match.SubMatches(0)
        Next Match
      End If
    Next c
  End With
  Application.ScreenUpdating = True
  Set Re = Nothing
End Sub

---------------------------
'**Word用 **
完全全角にした
第1のあんアん亜龠123a
で、123a だけの色づけ

Sub strReplacementColor()
Const MYCOLOR As Long = wdColorRed '赤
  Selection.HomeKey Unit:=wdStory
  Selection.Find.Replacement.ClearFormatting
  With Selection.Find
    .Text = "[0-9]{1,3}[A-z]?*"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Replacement.Font.Color = MYCOLOR
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchFuzzy = False
    .MatchWildcards = True
  End With
  Selection.Find.Execute Replace:=wdReplaceAll
End Sub

私個人のここの書き込みを、このまま後味の悪い終わり方をしたありません。特許関係ということや文章的にみてお若い方ではないと思いますが、お互いが気持ちよく書き込める暗黙のルールやマナーのようなものがありますから、よろしくご理解くださいますようお願いします。
    • good
    • 0
この回答へのお礼

>私が以前仕事をした特許法人の文章作成要綱をチェックしました。英数字は半角と決められていますし、多くの執筆原稿のワープロ規則では、英数字は半角と決められていますから、違う約束事は、事前におっしゃってください。

そうですか、特許法人の文章作成は、特許明細書とは違いますね。私は62歳になります。有資格者です。
 特許明細書を作成する仕事から、近いうちに、20代、30代の7人くらいに、特許明細書の作成指導をする仕事に変わります。作成支援ソフトが一部で回っていますけれど、あまり使えるものがありません。35年以上この仕事に携わってきた文章作成の手順をマクロにして、誰でもが利用可能にして、すばやく打ち込めるソフトを、エクセルからとワードからの両面で作っています。
ソフトウエアを勉強するための学校へいける時間的余裕がないのが残念です。もう、勉強して10ヶ月になりました。マクロは、25ほど作りました。回答者の回答が多いに助かっています。エクセルからの入力支援のマクロは終わりました。ワードで入力支援のマクロも略整いました。
ありがとうございました。

お礼日時:2008/07/14 07:27

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