- ベストアンサー
エクセルマクロで文字列を一発変換する方法を教えてください
- エクセルのマクロを使って、例えば「大阪太郎」を「25」という数字に一発で変換したいです。毎月約70件の変換作業があるので効率化したいです。エクセルの置換機能では大変なので、マクロを使いたいと考えています。具体的なプログラムの組み方や方法をご教示いただけますか。
- エクセルの置換機能ではなく、マクロを使って文字列を一括で変換したいです。毎月約70件の変換作業がありますが、手作業では非効率的です。具体的なマクロの組み方やプログラムの作成方法を教えていただけないでしょうか。
- エクセルのマクロを使って、特定の文字列を一括で変換したいです。例えば「大阪太郎」を「25」という数字に変換したいです。毎月約70件の変換があるため、効率化したいと考えています。マクロの組み方やプログラムの作成方法をご教示いただけないでしょうか。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Sub 置換() Dim c As Range For Each c In Selection c.Value = Replace(c.Value, "置換前文字", "置換後文字") c.Value = Replace(c.Value, "変換前文字", "変換後文字") 'ここに同じように好きなだけ・・ Next End Sub 選択範囲について適用します
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
VBAが出来る人には、質問の課題はそんなに難しいコードのはならない。またやり方(ロジックと言うようなもの)も色々在る。 しかし思い立ったからと言って、直ぐ組める様なものじゃない。普通自習したら数ヶ月はかかりきりでもかかる。甘く見てはいけない。 プログラムなどに適した人にしては、質問なども内容があいまい。 ーーー 「大阪太郎」→「25」、「東京次郎」→「26」の対応がいつも固定しているなら、関数のVLOOKUP関数で対応付けられる。 VLOOKUP関数を知らない人のレベルは、初心者と私は推測する。 エクセルのhデータ構成がどうなっているかも1言も質問に書いてない。 ーー また「大阪太郎」→「25」、「東京次郎」→「26」・・の表がどうしてもエクセルのシートに必要だが、どういう形で存在するのかも書いてない。自分で作るのか?毎月増減(増加)するのか。ワンセットで(他システムなどから)現状のものが出来るのか。氏名?か商品か判らないが、数字変換して何に使うのか、「大阪太郎」は2度3度出てくるのか、そういうことも書いてない。コンピュタ利用は、そういうチェックすべき観点と言うものがあるのだ。 ーー 関数を使ってはダメか 検索の操作のマクロの記録の使いこなしを勉強したら。
- aloha8761
- ベストアンサー率12% (11/89)
補足: VBAを扱うにはVBEに記載しなくてはいけません VBEはVBエディタの事です VBEは エクセルの 表示 - ツールバー - VisualBasicで表示させ VBE上で挿入 - 標準モジュール で現れた画面に コードすべてを貼り付けます これを実行するには実行 - Sub/ユーザーフォームの実行で 先ほど貼り付けたコードの名前が出ているのでそれを選択して実行ボタンを押します! 以上!
- mu2011
- ベストアンサー率38% (1910/4994)
次の方法は如何でしょうか。 (1)一つの置換操作をマクロ記録する。 (2)alt+F11キーを同時押下⇒VBE画面が表示⇒左画面の標準モジュールをクリック⇒modul1をダブルクリック (3)右画面に置換用のコードが2行分表示されるので、それをコピー&ペースト後に、Cells.Replace What:="置換前文字列", Replacement:="置換文字列"の部分を変更する
お礼
すごいっ、バッチリできました!!!(カタカタと音を立てるように、全部変換されていきました) 補足説明まで付けて下さって、どうもありがとうございました。(実際、補足が無かったら、できませんでした。当方の初心者っぷりもお見通しだったのですね。ありがとうございます!) これを機会に、マクロをちょっと勉強してみようと思います。(でも、普段はこういう上級の操作を必要としていないので、「この世界の成り立ちを漠然と理解する」だけに終わるかもしれませんが…。それだけに、こういう助け方をして下さって、感謝します。) それにしても、あっという間にこんなに回答が集まるというのは、インターネットは本当に凄い・・・オドロキです(実は、初めての質問だったものですから。当然、新規登録をしたばかりです。。) お世話になりました。皆さんの上に、幸あれ~。(ちょっと興奮気味。。笑)