「エクセル2010 vba getphonetic」
といったキーワードでのアクセスが、時折あります。
ApplicationオブジェクトのGetPhoneticメソッドについて、
調べていた方による検索です。
GetPhoneticは、Applicationオブジェクトに用意されているメソッドなのですが、Excel VBA初心者の方がイメージする、メソッド( = Excelを操作するコード)とはちょっと違うので、戸惑う方は少なくないと思っています。
Application.GetPhoneticメソッドを使ったサンプルマクロ
Application.GetPhoneticメソッドは、VBAの関数に近い動きをします。
簡単なプロシージャで動きを確認しましょう。Const TXT = "松竹梅"
MsgBox Application.GetPhonetic(TXT)
End Sub
上記のSubプロシージャを実行すると、定数TXTに定義された「松竹梅」のフリガナ「ショウチクバイ」がメッセージボックスに表示されます。
フリガナを取得したい文字列を引数に指定すれば、OKということです。
Application.GetPhoneticが、Excel側に用意されているメソッドではなく、VBAに用意されている関数だったなら、戸惑う方は相当減っていただろうと感じます。
VBAの文字列操作関数を使ったサンプルマクロ
VBAの文字列操作を行う関数の中で、大文字変換を行うUCase関数をつかったSubプロシージャを見てみましょう。
以下のプロシージャを実行すると、定数TXTに定義された「abc」が大文字に変換され「ABC」がメッセージボックスに表示されます。Const TXT = "abc"
MsgBox Strings.UCase(TXT)
End Sub
VBAのUCase関数をご存知だった場合、
MsgBox UCase(TXT)
という書き方に慣れている方のほうが多いと思いますが、VBAの関数もオブジェクト式でおなじみの「.」を使った「モジュール.関数」といった書き方ができます。
上記プロシージャの
MsgBox Strings.UCase(TXT)
は、この書き方です。
で、先のフリガナを取得する、
MsgBox Application.GetPhonetic(TXT)
と大文字にする
MsgBox Strings.UCase(TXT)
の形は、よく似ていると感じていただけるでしょう。
もしもGetPhoneticがVBAの関数だったならば、
MsgBox GetPhonetic(TXT)
といった書き方もできたのでしょうけれど、あいにくExcelのApplicationオブジェクトのメソッドで、GetPhoneticはグローバルのメンバーにはなっていないので、
MsgBox Application.GetPhonetic(TXT)
といった書き方をするわけです。
- Newer:VBAで下のセルと同じ値を入力する
- Older:教材作成はキックバイクを考えること
Home » エクセルマクロ・Excel VBAの使い方 » Applicationオブジェクト » フリガナを取得するApplication.GetPhoneticメソッド