[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『フリガナの編集』(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.