プロが教える店舗&オフィスのセキュリティ対策術

エクセルのマクロを使って、例えば、「大阪太郎」を、「25」という数字に一発&ごっそり変換したい。

上記の1件だけなら、エクセルの「置換」を使ってやればいいのはわかるのですが(実際、そのようにやってみたのですが、結構、大変だったものですから・・・)、実は、このような変換を、毎月、約70件こなさねばならない(つまりは、約70人分ある)ので、どうにか効率化できないかと調べた結果、「マクロ」というものを使って、そこに変換式(プログラム)を入れて、「適用」させれば、うまく行くのでは?と思い至りました。

「大阪太郎」→「25」、「東京次郎」→「26」、「北海道三郎」→「27」とかいう、そういう具合に、変換するのを、エクセルの「置換」を使わずに、変換のためのマクロ(VBA?)を一度だけ組んでしまって、後は、毎月、ポチッとボタンを押す、というようにしたいのです。

こういうことが、果たしてできるのかどうか、もしできるのなら、どういうプログラムを組めばよいのか、入り口だけでもよいので、ご教示いただけるでしょうか?
(ちなみに、ウェブ検索したのですが、漢字の文字列をカナ変換するとか、そういう「変換」のためのページはたくさん出てきたのですが、私の希望する、特定の文字列を、数字に変換するためのページなどは、(ニーズが無いせいか)見つけることができませんでした。

以上、なにとぞよろしくお願いいたします。

A 回答 (4件)

Sub 置換()



Dim c As Range

For Each c In Selection

c.Value = Replace(c.Value, "置換前文字", "置換後文字")
c.Value = Replace(c.Value, "変換前文字", "変換後文字")

'ここに同じように好きなだけ・・

Next

End Sub


選択範囲について適用します
    • good
    • 0
この回答へのお礼

すごいっ、バッチリできました!!!(カタカタと音を立てるように、全部変換されていきました)
補足説明まで付けて下さって、どうもありがとうございました。(実際、補足が無かったら、できませんでした。当方の初心者っぷりもお見通しだったのですね。ありがとうございます!)

これを機会に、マクロをちょっと勉強してみようと思います。(でも、普段はこういう上級の操作を必要としていないので、「この世界の成り立ちを漠然と理解する」だけに終わるかもしれませんが…。それだけに、こういう助け方をして下さって、感謝します。)
それにしても、あっという間にこんなに回答が集まるというのは、インターネットは本当に凄い・・・オドロキです(実は、初めての質問だったものですから。当然、新規登録をしたばかりです。。)
お世話になりました。皆さんの上に、幸あれ~。(ちょっと興奮気味。。笑)

お礼日時:2010/08/23 19:36

VBAが出来る人には、質問の課題はそんなに難しいコードのはならない。

またやり方(ロジックと言うようなもの)も色々在る。
しかし思い立ったからと言って、直ぐ組める様なものじゃない。普通自習したら数ヶ月はかかりきりでもかかる。甘く見てはいけない。
プログラムなどに適した人にしては、質問なども内容があいまい。
ーーー
「大阪太郎」→「25」、「東京次郎」→「26」の対応がいつも固定しているなら、関数のVLOOKUP関数で対応付けられる。
VLOOKUP関数を知らない人のレベルは、初心者と私は推測する。
エクセルのhデータ構成がどうなっているかも1言も質問に書いてない。

ーー
また「大阪太郎」→「25」、「東京次郎」→「26」・・の表がどうしてもエクセルのシートに必要だが、どういう形で存在するのかも書いてない。自分で作るのか?毎月増減(増加)するのか。ワンセットで(他システムなどから)現状のものが出来るのか。氏名?か商品か判らないが、数字変換して何に使うのか、「大阪太郎」は2度3度出てくるのか、そういうことも書いてない。コンピュタ利用は、そういうチェックすべき観点と言うものがあるのだ。
ーー
関数を使ってはダメか
検索の操作のマクロの記録の使いこなしを勉強したら。
    • good
    • 0

補足:



VBAを扱うにはVBEに記載しなくてはいけません
VBEはVBエディタの事です
VBEは エクセルの 表示 - ツールバー - VisualBasicで表示させ
VBE上で挿入 - 標準モジュール で現れた画面に
コードすべてを貼り付けます

これを実行するには実行 - Sub/ユーザーフォームの実行で
先ほど貼り付けたコードの名前が出ているのでそれを選択して実行ボタンを押します!

以上!
    • good
    • 0

次の方法は如何でしょうか。


(1)一つの置換操作をマクロ記録する。
(2)alt+F11キーを同時押下⇒VBE画面が表示⇒左画面の標準モジュールをクリック⇒modul1をダブルクリック
(3)右画面に置換用のコードが2行分表示されるので、それをコピー&ペースト後に、Cells.Replace What:="置換前文字列", Replacement:="置換文字列"の部分を変更する
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!