Excelのこととか色々

Excel のこととか楽天とか いろいろ書いてみます・・・

【Excel/VBAのこと34】最初の単語の頭文字だけ大文字にする(Left, Mid, LCase, UCase)

   f:id:tuna-kichi:20200223230814p:plain

 

2,3個の単語で構成されている英語の大文字を小文字に直す必要が出てきました。

 

例えば、こんな感じに。

 

Yahoo Shopping ー> Yahoo shopping

 

各単語の頭文字が大文字になっているものをすべて小文字に直さなければいけません。

 

Propper 関数が使えるかな と思ったのですが、これは各単語の頭文字を大文字にしてしまうので、使えませんでした。

 

そこで、一度すべてを小文字にして、それから1番目の文字を大文字にする という方法で対応しました。

 

**********************************************

マクロ

 

Sub 先頭単語の頭文字のみ大文字にする()
 Selection = LCase(Selection) '①
 Selection = UCase(Left(Selection, 1)) & Mid(Selection, 2) '②

End Sub

-----------------------------------------------------

 

簡単ですよね。

 

① まずは、選択されているセルの文字列を LCase ですべて小文字に直します。

  この時点で、「yahoo shopping」 のようになります。

 

② その次にすべて小文字になった文字列を、Left関数で左から一番目の文字だけを指定して、

  その文字を UCase で大文字にします。

  大文字にした1文字目と2文字目以降を合体させて、できあがり。

  ※2文字目以降は、Mid関数を使って指定します。

   3つ目の引数に「文字数」指定しますが、何も書かなければ開始文字以降全部が対象となります。

 

いつも通り、個人用マクロブックの標準モジュールに記述して、そのあとリボンに登録します。 

 

 

作成したマクロは難しくありませんが、ここにたどり着くのに時間がちょっとかかりました。

 

マクロに限らず、ちょっとした簡単なことで解決できる問題ってありますよね。

ポイントは、底に気が付くかどうかだと思います。

 

・・・底 ってどこ???

 

**************************************** 

 

個人用マクロブックについてはこちら

www.tuna-kichi.com

 

リボンに登録についてはこちら

www.tuna-kichi.com

 

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/