• ベストアンサー

アルファベットの小文字を大文字に変換する方法

replaceを使っていますが、 a→A、b→B、 c→C、という感じ以外に何か方法があれば、ご教示願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.6

こんにちは! 横からお邪魔します。 No.1さんの補足に >それぞれのシートをアクティブにしておいて、マクロを実行させると・・・ とありましたので、 別セル表示ではなく、A・B列データそのものを変えてしまいます。 Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, j As Long With ActiveSheet For j = 1 To 2 For i = 1 To .Cells(Rows.Count, j).End(xlUp).Row .Cells(i, j) = UCase(StrConv(.Cells(i, j), vbNarrow)) Next i Next j End With End Sub 'この行まで ※ A列のデータ数で最終行を取得していますので、 B列はA列よりも行数は多くない!という前提です。m(_ _)m

その他の回答 (5)

noname#204879
noname#204879
回答No.5

[No.1補足]へのコメント、 》 中途半端な質問で… ご冗談を!「中途半端」にも達していません! =UPPER(ASC(A1)) では如何?

回答No.4

No.3 です。度々すみません。チョーどうでもいいことかもしれませんが、恥ずかしながら算数の言葉を間違えたので、一応訂正します。「内心円」ではなく、「内接円」です。内接円の中心を「内心」と言います。

回答No.3

既に回答が出ているので、補足のみ。ベストアンサーは辞退します。 A1 △ abc の内心円の中心を i、i から線分 ab、bc、ca に下ろした垂線の足をそれぞれ d、e、f とする。 ワークシート関数 B1 =upper(a1) C1 =substitute(substitute(substitute(a1,"a","A"),"b","B"),"c","C") ※ REPLACE 関数は「文字列中の文字の位置」を数や数式で指定する必要があるため、文字の組み合わせに何らかの規則性がないと、使用は難しいです。  FIND 関数を入れ子にすれば一応、置換対象の文字の位置を求めることは可能です。  しかし同じ置換対象の文字が複数ある場合は、検索し始める位置を FIND の引数により一つひとつ指定していくことになりますが、複雑になって難しいです。 VBA 関数 debug.print ucase(range("a1").value) debug.print ucase$(range("a1").value) debug.print replace(replace(replace(range("a1").value,"a","A"),"b","B"),"c","C") ※「$」の付いた関数については、VBE のヘルプ「関数からの文字列の取得」をご覧ください。  特に変更する理由がない場合は、「$」付きのものを使用すればよいでしょう。 ※ Replace 関数は常に文字列型を返すため、「$」は不要です。 ※ Replace は、概ね、ワークシート関数 SUBSTITUTE と REPLACE を合体させたような関数です。 ※ WorksheetFunction.Substitute メソッド、WorksheetFunction.Replace メソッドを使うことも可能です。 関数以外 (1) A 列全体などのセル範囲を選択、(2)置換のダイアログ(Ctrl+H)で置換する文字列を「a」→「A」として「すべて置換」ボタンを押す、(3) B、C についても同じことを繰り返す。 ※何か失敗した場合は、クイックアクセスツールバーの「元に戻す」ボタン(Ctrl+Z)が効きます。 ※小文字を大文字にするだけなら不要なことですが、例えば a を b に書き換えるといった場合は、ダイアログ中の「オプション」ボタンで「大文字と小文字を区別する」をチェックして実行すると、小文字だけを置換したりできます。

  • Ensenada
  • ベストアンサー率44% (484/1090)
回答No.2

こちらが参考になるのでは? http://excel.onushi.com/function/upper.htm リンク先では、UPPER(文字列を指定) となっていますが UPPER(セルを指定)でも可能です。

noname#204879
noname#204879
回答No.1

=UPPER(A1)

kuma_1228
質問者

補足

中途半端な質問で申し訳ありませんでした。 A列に型式、B列に製造番号が入ります。 型式、製造番号ともに、アルファベットから始まります。 型式はアルファベット+数字またはカタカナ、製造番号はアルファベット(アルファベットの桁数は1桁か2桁)+数字(数字の桁数が4桁から9桁、6桁のものの中には、0で始まるものもある)。 入力する人によって、全角と半角の文字を混在させてしまうひともいます。 今現在使用中のファイルは、すでに500行を超えており、さらに同じ内容のシートが毎月1枚ずつ作成されています。 そんな状況で、それぞれのシートをアクティブにしておいて、マクロを実行させると、A列、B列の内容を全て半角文字に置き換えることが出来れば…と思いご教示願います。

関連するQ&A