例文を使って繰り返し業務を時短

【マクロ・VBA】範囲を指定して振り仮名を入力する

エクセル、マクロ、VBAで指定した範囲に振り仮名を入力する方法 VBA
エクセル、マクロ、VBAで指定した範囲に振り仮名を入力する方法

選択範囲のセルにフリガナを表示させる方法

Sub ShowFurigana()
    Dim cell As Range
    For Each cell In Selection
        If Not cell.Comment Is Nothing Then
            cell.Comment.Delete
        End If
        cell.AddComment
        cell.Comment.Visible = False
        cell.Comment.Text Text:=cell.Phonetic.Text, Start:=1, Length:=Len(cell)
    Next cell
End Sub

このコードは、選択範囲の各セルについて、以下の処理を行います。

  1. 既存のコメントがある場合は、削除します。
  2. 新しいコメントを追加します。
  3. コメントを非表示にします。
  4. セルのフリガナをコメントに設定します。

これにより、選択範囲の各セルのフリガナが、コメントとして表示されるようになります。コメントを表示するには、セルを選択した状態でマウスポインターを当てると、コメントが表示されます。

選択した範囲の振り仮名をセル内に表示する

このVBAコードは、選択範囲の各セルに対してフリガナの入力を促すためのダイアログボックスを表示し、入力が完了したらフリガナを表示するためのコードです。

Sub 振り仮名の入力()
    
Selection.SetPhonetic
Selection.Phonetics.Visible = True

MsgBox "完了"
End Sub

具体的には、以下の処理を行っています。

  1. Selection.SetPhonetic:選択範囲の各セルに対してフリガナの入力を促すダイアログボックスが表示されます。
  2. ‘Selection.Ph:フリガナが入力された場合、各セルのフリガナが表示されるようにします。
  3. MsgBox "完了":処理が完了したことを示すメッセージボックスを表示します。

つまり、このコードは選択範囲の各セルにフリガナを入力することを目的としています。フリガナが入力された場合は、各セルの右側にフリガナが表示されます。

振り仮名を指定したセルに表示する_ループ

このVBAコードは、指定した列にあるセルの値に対してフリガナを計算し、別の列に表示するためのコードです。

Sub 振り仮名を指定したセルに表示する_ループ()
    
Dim i As Long

For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    
    Cells(i, 3) = Application.GetPhonetic(Cells(i, 2))
    'Cells(i, 2).Characters(1, Cells(i, 3)).PhoneticCharacters = Cells(i, 4)

Next i
   
MsgBox "完了"
End Sub
  1. ‘Dim i As Long:ループカウンターのための変数を宣言します。
  2. For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row:指定した列にある値が入力されているセルの行数分、ループを行います。ただし、ループ開始行は2となっています。これは、1行目が見出し行である場合を考慮したものです。
  3. Cells(i, 3) = Application.GetPhonetic(Cells(i, 2)):指定した列のセルに入力されている値に対してフリガナを計算し、別の列の同じ行に表示します。’ゲットフGetPhoneticメソッドは、指定した文字列に対してフリガナを計算するために使用されます。
  4. Next i:次の行に移動して、ループを継続します。
  5. MsgBox "完了":処理が完了したことを示すメッセージボックスを表示します。

なお、このコードでは、フリガナが計算された結果を別の列に表示するだけであり、オリジナルのセルに直接フリガナを設定するコードはコメントアウトされています。フリガナをオリジナルのセルに設定する場合は、コメントアウトを解除し、コードを適宜修正する必要があります。

コメント

タイトルとURLをコピーしました