[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『フリガナの編集』(Ty)
A B 1、11 音 ←おと 2、12 音 ←おん 3、13 音 ←ね
D 8、11 9、12 10、13
の時に下記マクロを実行したf8、f9、f10のフリガナを編集したい
Sub test() Range("f8") = Application.VLookup(Range("D8"), Range("$A$1:$B$3"), 2, 0) Range("f9") = Application.VLookup(Range("D9"), Range("$A$1:$B$3"), 2, 0) Range("f10") = Application.VLookup(Range("D10"), Range("$A$1:$B$3"), 2, 0) Range("f8:f10").SetPhonetic Range("F8:f10").Select Selection.Phonetics.Visible = True End Sub
F 8、音 ←おと→おと 9、音 ←おと→おん 10、音 ←おと→ね
ご教示ください。 (Ty)
新規ブックにて以下のコードを試してみてください。
'============================================================================== Sub test() Dim rw As Long Dim g0 As Long Dim g1 As Long Dim rnga As Range Dim rngb As Range Dim crng As Range Cells.ClearContents Set rnga = Range("a1:a3") For g0 = 1 To rnga.Count With rnga(g0) .Value = g0 + 10 With .Offset(0, 1) .Value = "音" .Phonetics.Delete .Phonetic.Text = Array("オト", "オン", "ネ")(g0 - 1) End With End With Next With Range("d8:d10") .Formula = "=row()+3" .Value = .Value End With MsgBox "この表示されているデータに対して、マクロを実行します" Set rngb = Range("f8:f10") For g0 = 1 To rngb.Count rw = Application.Match(rngb(g0).Offset(0, -2), rnga, 0) With rngb(g0) .Value = rnga(rw).Offset(0, 1).Value .Phonetics.Delete Set crng = rnga(rw).Offset(0, 1) On Error Resume Next For g1 = 1 To crng.Phonetics.Count Err.Clear .Phonetics.Add crng.Phonetics(g1).Start, crng.Phonetics(g1).Length, crng.Phonetics(g1).Text If Err.Number <> 0 Then .Phonetic.Text = crng.Phonetic.Text Exit For End If Next On Error GoTo 0 End With Next rngb.Phonetics.Visible = True End Sub
フリガナは、オブジェクトとして存在しているので本当にコピーするのは、もっと大変なのですが、 取りあえず、フリガナ(読み)のコピーだけです。
何も入力されていないシートをアクティブにして上記testを実行してください
ichinose
ありがとうございました。 Ty
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.