Excelシートに手入力したデータはルビが自動的に振られている
Excelシートに手入力したデータに対しては、入力時に勝手にルビ(かな)が振られる。
ので、そのセルに対してPhonetic関数を使用すると
「全角かな or 全角カナ or 半角カナ」でルビが自動的に振られている。
非表示なんだけどね~デフォルトだと「全角カナ」になるのかな?
サンプルとして、A1セルに「騎手名」、A2セルに「今村 聖奈」と入力しルビを確認する
「ア亜」をクリックし、「ふりがなの表示」をクリックすると、
「ふりがなの設定」でひらがな・カナ・カナの指定が出来る。
B1セルに「=Phonetic(A1)」と入力
B2セルで「Ctrl + d」を押す
こんな感じで、ルビからフリガナを入力できるのだが、これがコピペしたデータだとルビが振られていないので
Phonetic関数を使用してもそのままのセル値が表示されることになる。
実際にJRAホームページに騎手リーディングのデータをコピペしExcelシートに貼り付けてサンプルデータを用意する。
Excelシートにコピペした後、一括でルビを振る方法
Excelシートにコピペしたデータはルビが振られていないのでphonetic関数でそのままだと変換できない。
上記方法で一つ一つルビを手動で振り直していくのも数が10、20程度なら問題ないが大量なデータだと面倒だ。
そんな時は「ExcelVBAを使用して一括でルビを振る方法」で対処する。
開いたExcelブックが通常の「Microsoft Excel ワークシート (.xlsx)」の場合
この場合は「ALT+F11」でExcelVBAを記述してもマクロを保存できないので
- ルビを振りたい範囲を選択
- 「ALT+F11」でExcelVBAを表示
- 「Ctrl+g」でイミディエイトウィンドウを表示
- イミディエイトウィンドウ内に「Selection.SetPhonetic」と入力
- 「Enter」を押す
この5手順でコピペしたデータにルビが振ることが出来る。
その後、Phonetic関数を使えば手入力した時と同様にカナ表示される。
サンプルデータをコピペしPhonetic関数を使ってルビを振る前後のシートを比較
サンプルデータをJRAホームページから騎手名をコピペして作成する。
順位 | 騎手名 |
1 | 川田 将雅 |
2 | 岩田 望来 |
3 | 松山 弘平 |
4 | 福永 祐一 |
5 | C.ルメール |
6 | 坂井 瑠星 |
7 | 武 豊 |
8 | 鮫島 克駿 |
9 | 西村 淳也 |
10 | M.デムーロ |
11 | 幸 英明 |
12 | 池添 謙一 |
13 | 藤岡 康太 |
14 | 和田 竜二 |
15 | 菱田 裕二 |
16 | 藤岡 佑介 |
17 | 岩田 康誠 |
18 | 浜中 俊 |
19 | 角田 大和 |
20 | 今村 聖奈 |
ルビを振らずにPhonetic関数を使うと、そのままの文字列が表示されてしまう例
上記5手順で、イミディエイトウィンドウ内に「Selection.SetPhonetic」と入力し変換すると
- ルビを振りたい範囲を選択(今回の範囲だとB1:B21)
- 「ALT+F11」でExcelVBAを表示
- 「Ctrl+g」でイミディエイトウィンドウを表示
- イミディエイトウィンドウ内に「Selection.SetPhonetic」と入力
- 「Enter」を押す
C1セルに入力した「=Phonetic(B1)」が「騎手名」から「キシュメイ」とカナ変換されたのが分かる ❣
ExcelシートにコピペしたデータをExcelVBAマクロを使用して一括でルビを振る方法
2つのサンプルマクロを準備してみた。
- 一つは上記の「Selection.SetPhonetic」を一行Subモジュール化し、手動で範囲指定しマクロ実行
- マクロ名:Sub SSetPhonetic()
- 一つはシート名!セル範囲を指定し、C列にカナ表示させる[=phonetic関数]を埋め込み値を確定するマクロを実行
- マクロ名:Sub SSRubiSet()
「Selection.SetPhonetic」を一行Subモジュール作成「マクロ名:Sub SSetPhonetic()」
Sub SSetPhonetic()
Selection.SetPhonetic
End Sub
SSetPhonetic()を実行する操作手順
- Excelシートのルビを振る範囲を選択する(今回だとB1:B21)
- 「ALT+F8」を押す
- SSetPhonetic()を実行する
※結果はイミディエイトウィンドウと同じ結果となる。
シート名!セル範囲を指定し、C列にカナ表示し値を確定するSubモジュール作成
「マクロ名:Sub SSRubiSet()」
Sub SSRubiSet()
'' B列のデータをC列に:全角カナ
'' テストモジュール
Dim i As Integer
Dim wk_nm1 As String
Sheets("Sheet3").Select
Range("B1:B21").Select
' 全角カナ設定
Selection.SetPhonetic
Selection.Phonetics.CharacterType = xlKatakana
Selection.Phonetics.Alignment = xlPhoneticAlignLeft
Selection.Phonetics.Visible = False
i = 1
Do Until CHRCVT(Cells(i, 2)) = ""
Cells(i, 3) = "=phonetic(B" & i & ")"
'値貼付けで全角カナを値で貼り付ける
If Not IsError(Cells(i, 3)) Then
wk_nm1 = Cells(i, 3)
Cells(i, 3) = wk_nm1
End If
i = i + 1
Loop
Range("C1").Select
End Sub
Function CHRCVT(r) As String
If IsNull(r) Then
CHRCVT = ""
Else
CHRCVT = Trim(r)
End If
End Function
XlPhoneticCharacterType 列挙 (Excel)
セルのふりがなの種類を指定します。名前 | 値 | 説明 |
---|---|---|
xlHiragana | 2 | ひらがな |
xlKatakana | 1 | カタカナ |
xlKatakanaHalf | 0 | 半角カタカナ |
xlNoConversion | 3 | 無変換 |
SSRubiSet()を実行する操作手順
- 「ALT+F8」を押す
- SSSRubiSet()を実行する
このPhonetic関数を理解すると拡張機能のHebon関数も以外と簡単に習得できる ❣
Excelシートでルビを削除したい場合の4手順
- ルビが振られている元データを範囲指定しコピー
- 空いているセルもしくは新しいシートに値貼付け
- 値貼付けした範囲をコピー
- 元のデータに値貼付け
これで何度もテストできるよねw
編集後記
Phonetic関数について説明したが、案外この記事で一番タメになるのは、セル値の一つ上をコピーする「Ctrl+d」
だったりする。。。( ̄▽ ̄)
ルビを振るのは、「Selection.SetPhonetic」をなんとなく一度使ってみて記憶の断片にでもあれば、毎度このブログからコピーもしくは参照して利用すれば個人の業務時間の短縮に繋がる。
”君”の活躍を祈る ❣
Excel VBA 逆引き大全 600の極意 Microsoft 365/Office 2021/2019/2016/2013対応
Excel VBA 逆引き大全 600の極意 Microsoft 365
※私が持っているのが2016年版(以下は2016)
- ExcelVBAの基本構文
- セルの操作
- 関数
- ワークシート、ウィンドウの操作
- ブック操作
- データ操作
- テーブル・ピボットテーブル
- 図形
- グラフ
- ユーザーフォーム
- 印刷
- ファイルとフォルダ
- データ連携
- イベント
- バージョン・トラブルシューティング・エラー処理
- 高度なテクニック
- 索引
目次が巻頭で検索が巻末。昔のタイプの本の構成だが、索引がページでなくTipsという見出しNo.になっていて慣れるまでは検索しづらい。
Amazonレビューは★3.9
それでは、またね~😎