アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっています。
またもやエラーの解決方法がわからず苦戦しております・・・。
Unicodeの【~】から通常の【~】に置換をしたいのですが、コードに記すとUnicode対応していないため【?】となってしまいます。
原因は究明できたので下記のようにコーディングしてみたのですが、Substituteのところでアプリケーション定義、オブジェクト定義のエラーとなります。
Dim i, lRow As Long
'A列の最終行を取得
lRow = Cells(Rows.Count, "A").End(xlUp).Row
'A列の最終行まで繰り返す
For i = 2 To lRow
'A列の文字列を置換。(~特殊文字から⇒~対応文字に置換)
Cells(i, "A") = WorksheetFunction.Substitute(Cells(i, "A"), ChrW(12316), "~")

Next i

Substituteの箇所を下記のように書き換えても、プロシージャの呼び出しまたは、引数が不正となってしまいます。
Cells(i, "A") = Replace(Cells(i, "A"), ChrW(12316), "~")

どう改善すれば正常に動くでしょうか?
ご教示くださいませ(._.)

A 回答 (1件)

こんにちは



試しに、For~Nextの部分をそのままコピペして実行してみましたが、私の環境ではちゃんと動作するようです。

>Cells(i, "A") = Replace(Cells(i, "A"), ChrW(12316), "~")
エラー箇所がわかっていて、メッセージもわかっているので、分解して何が原因かを突き止めるのが近道かと思います。
例えば、Cells(i, "A")、ChrW(12316) を一旦変数に置き換えて、
 Set r = Cells(i, "A")
 letter = ChrW(12316)
r = Replace(r, letter, "~")
のように分解したら、どこでエラーになるのでしょうか?
    • good
    • 1
この回答へのお礼

fujillinさま!いつもありがとうございます!!
分解して考えるという癖付けが大事なんですね。勉強になります(*'▽')
エラーは、Cells(i, "A")この箇所で出ていたようで、なんでかな~としばらく考えていたのですが、変数 i に2行目から指定していたのがダメでした。本当は7行目からでした~
本当に単純ミスです・・・。お恥ずかしい・・・。
今回もお力添えいただき、ありがとうございました!

お礼日時:2020/11/25 10:56

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