【ExcelVBA】1つの引数から2つの結果を一度に出したい

  • [記事公開]2023.07.12
  • VBA

Yahoo!知恵袋に回答した中から、1つの引数から2つの出力結果を得る方法を紹介します。

質問

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11282554436

Excelの関数かマクロ(できればこちら)で
シート1にある、漢字のタイトルがA2にあり、それのカナをB2に、それのローマ字読みをC3に出したいのですが、どうしてもなりません。

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11282554436

漢字(や数字やひらがなやカタカナ)のタイトルがA2にあり、それのカナをB2に、それのローマ字読みをC2の一気に出来るものはないでしょうか?

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11282554436

A2に言葉入れて、ボタン押したら
B2にカナも入り
C2にローマ字も入るということです。

要は、A2に入れて実行したら、勝手にB2もC2も入るマクロということです。
B2はA2を参照元に
c2もA2を参照元にできるのではないかと。
最初、一括変換を探していたのですが、どこのサイトにもなかったのです。

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11282554436

回答

私が考えたコードは以下のとおりです。

Public Sub ボタンを押したら一気に変換()
    Dim sh  As Worksheet
    Set sh = ActiveSheet
    
    Dim stMoji As String
    stMoji = sh.Range("A2").Value
    
    sh.Range("B2").Value = Application.GetPhonetic(Rng.Value)
    sh.Range("C2").Value = KatakanaToRoomaziE(sh.Range("B2").Value)
    
    Set sh = Nothing

End Sub

解説

コードを見て分かる通り、結局セルC2はセルB2に入った値を参照するので、質問者さんの意図するところとは違うかな??と思ったのですが、

ありがとうございます。
できました。これですよ~~ほしかったのは。
助かりました。

ということでしたので、これでよかったのでしょう。

コード内にある”KatakanaToRoomaziE”は、こちら↓のサイトにあるものを使っています。

https://green.adam.ne.jp/roomazi/puroguramu.html

例えばセルA2に入った値が「初恋」という2文字の漢字だったとすると、セルB2には「ハツコイ」というカタカナが入ります。

セルC2はセルB2の値を参照してKatakanaToRoomaziE関数が働き、「hatsukoi」という値が入ります。

ちょっと結果だけ見ると単純すぎましたね。質問者さんの意図するところがつかめなくて、だいぶ回答を重ねてしまいました。

途中、配列数式とかスピルとか考えたのですが、そう複雑に考えずに単純にマクロボタンを押したら動作するものを考えればよかったようです。

宣伝

このようにExcel相談にのっています。この記事掲載時点では無料です。Excelでお悩みの方、相談にのりますよ。

ただしこのExcel相談に来たご相談内容は、幣事務所のブログの記事にすることがありますのでご了承ください。