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

いつもお世話になります。
OSは、Win10 エクセルは。2016 です。

指定の文字を置き換えるだけなら下記の構文でいいのですが、
何かの不都合で元に戻したい必要性があります。

この場合どのように下記の構文を変更すればいいかご指導いただけませんか。

宜しくお願いいたします。

参考
Sub 置換()
Range("J13:AN32").Select
With Selection
.Replace What:="n", Replacement:="日", LookAt:=xlWhole
.Replace What:="h", Replacement:="早"
.Replace What:="o", Replacement:="遅"
.Replace What:="y", Replacement:="夜"
.Replace What:="k", Replacement:="公"
.Replace What:="u", Replacement:="有"
.Replace What:="p", Replacement:="パ"
.Replace What:="q", Replacement:="休"
.Replace What:="s", Replacement:="宿"
.Replace What:="t", Replacement:="退"
.Replace What:="a", Replacement:=""
Range("A3").Select
End With
End Sub

質問者からの補足コメント

  • どう思う?

    元にもどすとは 
    Range("J13:AN32").Select に
    入力された文字すべてが対象です。
    この場合空白セルもありますが。

    例えば
    早 となっていたら h にです。

      補足日時:2020/03/11 07:28
  • つらい・・・

    早速のご指導を有難うございます。

    ご指摘の、
    最後の「a→""」  作成時の苦労を思いだしました。

    何故かと申し上げますと あるセルの値を修正したい時、 a を入力してコマンドボタンを押せば
    空白になり再度新しい値を入れれば修正することができます。
    私なりのやり方かもです。

    ご迷惑かけました。
    このことにきずかずかなりの時間を費やしました。

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/03/11 11:11

A 回答 (1件)

こんにちは



変換がxlWholeなので、ある程度は可逆と言えそうですが、最後の「a→""」だけはなんとも言えないですね。
これを無視しても良ければ、使用なさっている条件によっては(例えば)「n→日」を「日→n」ような逆変換をしてあげれば可能になるかも知れません。
とは言え、上記の処理は完全ではありません。
元データが「n」、「日」の場合、変換すると両方とも「日」の結果になりますが、上記の逆変換では「日」は必ず「n」になってしまうからです。

そのような場合でも、確実に元に戻したいのであれば、変更前のJ13:AN32のセル値をそのままどこかに記録しておくのが一番です。
記録用のシート(非表示など)を作成しておいて、(例えば)30行ずつ順に記録して行っても良いですし、同じシートの最終列近辺を(非表示にして)利用するのでも良いかも知れません。
元に戻す際には、『記録の最終版をコピペして、最後の記録範囲を削除する』といった処理を行えば宜しいかと。
この回答への補足あり
    • good
    • 0
この回答へのお礼

早速のご指導を有難うございます。
補足欄にも記入しましたが、

ご指摘の、
最後の「a→""」  作成時の苦労を思いだしました。

何故かと申し上げますと あるセルの値を修正したい時、 a を入力してコマンドボタンを押せば
空白になり再度新しい値を入れれば修正することができます。
私なりのやり方かもです。

ご迷惑かけました。
このことにきずかずかなりの時間を費やしました。

お礼日時:2020/03/11 11:16

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