- ベストアンサー
エクセルで英語の頭のみ大文字にするマクロについて
Excel2003を使っています 英語の文字列で先頭の文字のみ大文字に変換する下記のマクロを作ってみましたが、記号・・・"("、")"、"/"などを含む文字列の場合、記号の後の先頭文字が小文字になってしまいます。 例 SOMEBODY (WHO) → Somebody (who) これをSomebody (Who) としたいのですがどうしたらよいでしょうか Sub Proper処理x() Dim セル As Range Dim 変換文字 As Strin For Each セル In Selection 変換文字 = StrConv(セル.Text, vbProperCase) セル.Value = 変換文字 Next End Sub ワークシート関数のProper()の場合、記号の後は大文字になります、その代わりCAN'TがCan'Tになってしまします。 Proper関数とStrConv関数では機能が違うのでしょうか 英数文字列の先頭文字を大文字にするマクロで、記号の後の文字を大文字にかつ、アポストロフィーの後のみは小文字にするマクロを作りたいのです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- EXCEL VBA 記号の削除
A列3行目からはじまる(A列2行目タイトル=FA)データより"!"や"#"などの記号を取り除いた ものをE列に表したいと思っています。 データを半角にして、ASC関数を使って記号を取り除こうとしたのですが、半角になるだけで 記号を取り除くことができません。 If の後、ASC関数は使用せず、"!"や"#"を指定しても結果が同じだったんですが REPLACEの使い方が間違っているのでしょうか? Dim セル As Range Dim TARGET As Range Dim 変換文字 As String Dim i As Long Dim W As Worksheet Set W = Sheets("DATA転記") Set TARGET = W.Range("A3", Range("A65536").End(xlUp)) For Each セル In TARGET 変換文字 = StrConv(セル.Text, vbNarrow) For i = 1 To Len(変換文字) If Asc(変換文字) >= 32 And Asc(変換文字) <= 47 And _ Asc(変換文字) >= 58 And Asc(変換文字) <= 64 And _ Asc(変換文字) >= 91 And Asc(変換文字) <= 96 And _ Asc(変換文字) >= 123 And Asc(変換文字) <= 126 Then _ 変換文字 = WorksheetFunction.Replace(変換文字, i, 1, "") End If Next i セル.Cells(, 5).Value = StrConv(セル.Text, vbWide) Next セル
- ベストアンサー
- オフィス系ソフト
- Excelのマクロ教えてください
初めまして。 以下のようなマクロが欲しいのですが、知識不足のため、どうしたらよのかわからず困っております。 ウェブで色々と調べてやってみましたが、期待どおりの結果を得られませんでした。 どなたかお教えいただけたら幸いです。 行いたいのは、例えば、 セルA1に文字列『1. abc』が入っているとき、先頭の番号『1』の部分だけ取り出し (または . 以下を除いて)、セルA1の内容を数字型の『1』に書き換える という動作です。 複数のセルをドラッグして選択し、マクロのショートカットで一発変換 できたら…と思っております。 変換したい部分のセルの内容はすべて、『1. abc』のように、文字列で 「1~7の数字」、「半角の.」、「半角スペース」、「英単語」 の順になっています。 簡単なことなのかもしれませんが、自分にはさっぱりでした… どなたか回答をお願いいたします。m(_ _)m
- ベストアンサー
- オフィス系ソフト
- 全て英語大文字の文章で先頭だけを大文字に
お世話になります。 EXCELで全て英語大文字の文章で先頭だけを大文字、先頭以外を小文字に変換する方法を教えて下さい。 例)ABCDE/FGHIJKLM/NOPQ → Abcde/Fghijklm/Nopq このように/あるいはスペースなど、文字列間には何らかの区切りが有るものとし、それも選択出来るのが良いです。 このような文字列が何千行もあるので、セルに関数などを入れて、行数分ドラッグしてコピーするだけとか、セルで済むのが良いですが、無理ならマクロでも構いません。 セルでの関数などが複数セルに分かれても結構です。 例)A1~:該当文章、B1~:該当文章A1の置換1段階、C1~:該当文章A1の置換1段階、D1:置換完了文章 以上、宜しくお願い致します。
- 締切済み
- Excel(エクセル)
- Excel 2007 文字列について
Excel 2007 文字列について 郵便番号に「-」を入れたいです。 1つのセルに例えば「0001111」とある場合に 「000-1111」と変換したいです。 どのような関数またはマクロを作成すればよろしいでしょうか。
- ベストアンサー
- その他MS Office製品
- マクロ(VBA)での文字列操作
こういうことできますか? Dim str as String str = Cells(1, 10) Length = Find("会計", str) つまり、エクセル上のセル内の文字列を取ってきて、 会計という文字列を含む場所が何文字目か知りたい。 ところが、Find関数か認識されずエラーが出ます。 Searchにしても同じです。 エクセル関数としては使えるのですが、マクロでは使えないのですか?
- ベストアンサー
- オフィス系ソフト
- エクセルにてマクロで先頭に文字を入れたいのですが・・・・
はじめまして。 質問なのですが、 「指定した範囲のセルの先頭のみ 好きな文字を入れるマクロ が作りたいのですが・・・」 マクロ初心者でいまいちわかりません。 よろしくお願いします。
- 締切済み
- 財務・会計・経理
- エクセルのマクロで質問です
B列に氏名の頭文字(カタカナ)1文字があいうえお順に1000行くらい並んでいて、例えば「カ」の先頭のセルをアクティブセルにするマクロの組み方を教えていただけますでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excel 2003のマクロについて
セルにある文字列に”-”を加え、別のセルに移したいです。 例/ABCDEFGHIJ→ABC-DEFGH-IJ としたいです。 文字列の“-”の入る位置は、「例/」の位置で固定です。 Excel2003を使用しています。 マクロ等で一発変換できる方法はありますか? マクロ初心者なので、教えて下さい。宜しくお願い致します。
- ベストアンサー
- その他MS Office製品
- エクセルVBAのコードを簡単に表現したい
お世話になっています。 エクセルVBAでコードを書いたのですが、なにぶん初心者のためゴテゴテしたものになってしまいました。 A列にはA2からA11まで15文字以内の文字列が入っています。 同じ行のB列からP列に、濁点も1文字として1セルに1文字づつ抜き出すようにコードを書きました。 以下です。 Sub test() Dim i As Integer Dim m As Integer Dim s1 As Worksheet Set s1 = Sheets("sheet1") For i = 2 To 11 For m = 1 To 15 変換 = s1.Cells(i, 1) 変換 = StrConv(変換, vbKatakana) 変換 = Application.WorksheetFunction.Asc(変換) 変換 = Mid(変換, m, 1) 変換 = StrConv(変換, vbWide) s1.Cells(i, m + 1) = StrConv(変換, vbHiragana) Next Next End Sub そこで質問なのですが、上記のコードをもっとスマートに表現するとどのようなコードになるのでしょうか。(特に「変換」が連なっているところ) よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBA(Excel)で文字列内の"~"記号だけ半角変換したくない
VBA(Excel)で、StrConvを用いて、文字列内に存在する記号を全角→半角に変換して、再び文字列内に格納するようにしています。 strValue = StrConv(strValue, vbNarrow) しかし、"~"も"~"に変換されてしまいます。 "~"は半角変換しないようにしたいのですが、何か良い手法はありますでしょうか? どなたかご教授下さいませ。 よろしくお願い致します。
- ベストアンサー
- その他(プログラミング・開発)
お礼
完璧です ありがとうございました