プロが教えるわが家の防犯対策術!

入門レベルのくせにいきなり難しいことをするな、とお叱りを受けそうですが、下記のような操作を行う場合のマクロの作り方(コード)を教えてください。

sheet1 E列の全ての☆を★に変換
sheet1 E列の全ての★を※に変換
sheet1 E列の全ての※をクリア

単純なクリアのマクロの作り方はわかったのですが、条件付の変換やクリアの作り方がわかりません。無謀な質問かもしれませんが、よろしくお願いします。m(__)m

A 回答 (2件)

Excel2000なら下記でできます。



Sub Macro1()
Columns("E:E").Select
Selection.Replace What:="☆", Replacement:="★", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="★", Replacement:="※", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="※", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
End Sub

Excelにはキーボードマクロという機能があります。
「ツール」-「マクロ」-「新しいマクロの記録」とすると、
マクロの記録というウィンドウがでるので、そのまま「OK」をクリック。(マクロ名は覚えておいてください)
すると記録終了の四角のボタンと相対参照のアイコンだけの小さなウィンドウが表示されます。
この状態で行われた作業はすべてマクロに記録されます。
最後にマクロの終了ボタンをおすと、マクロが作成されますので
「ツール」-「マクロ」-「Visual Vasic Editor」でエディタを起動して作成されたマクロを確認してください。

この機能を使えばこの操作をマクロで表現するにはという質問はする必要がなくなります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
Excel2000なので、そのままはっつけて試したのですが、うまくいきませんでした。というか、マクロを実行すると、記号が全部消えちゃいました。(?_?)
結局#2の方のコードをはっつけて成功しましたが、大変参考になりました。ありがとうございます。

お礼日時:2003/04/03 14:44

Sub 変換()



Dim 行
行 = 1
Cells(1, 5).Select
下段 = Cells(65536, 5).End(xlUp).Row
Cells(行, 5).Select
Do
If 行 > 下段 Then
Exit Sub
End If
If Cells(行, 5).Value = "☆" Then
Cells(行, 5).Value = "★"
End If
行 = 行 + 1
Cells(行, 5).Select
Loop
End Sub


上記は☆なら★へという命令です。あと応用してください。
    • good
    • 0
この回答へのお礼

ありがとうございます。
コードって英語ばっかりなんだと思ってたら
『行』なんて漢字をいれてもいいんですね。
(↑ド素人な質問でしょうか(^_^;))
GETSTREETさんのコードをありがたく使用させていただき、応用も利かせて、三つの動作を合わせてできるようなマクロを作ることができました。
ありがとうございます。

お礼日時:2003/04/03 14:47

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