お世話になっています。
ExcelVBAでマクロを使用しているのですが、
セルの内容が「=テスト」となっているために「#NAME?」になっているものを、
頭にシングルコーテーションを付けたいのですが、実行時にエラーが出てしまいます(頭の「=」はつけた状態で無いといけません)。
どなたか「#NAME?」のエラーを回避する方法を知っている方はいらっしゃいますか?
IEはv6.0。EXCEL2002/VBAを使用しています。
皆様の助言、よろしくお願い致します。
>頭にシングルコーテーションを付けたいのですが
でいいんじゃないでしょうか。
>実行時にエラーが出てしまいます
何のエラーですか?
問題は「「#NAME?」のエラーを回避する方法」じゃなくて
セルに"'=テスト"という文字列を代入できないことですよね?
よし様、すみません、お返事遅れました。
>>頭にシングルコーテーションを付けたいのですが
>でいいんじゃないでしょうか。
セルの内容が「エラー 2029」になってしまっているために単純に「'」を付けるだけでは駄目でした。
>>実行時にエラーが出てしまいます
>何のエラーですか?
「実行時エラー '13':
型が一致しません。」です。
最終的に作りたいものは「#NAME?」のセルには、「'」を頭につける処理ですが、単純にセルに組み合わせるだけだと駄目のようです。
例えば下記のようなマクロがエラーになるということですか?
Sub Macro1()
Worksheets("Sheet1").Cells(1, 1) = "'=テスト"
End Sub
当方の環境では正常に実行できますが。
WinXP,Excel2000
よし様、御返事ありがとうございます。
>例えば下記のようなマクロがエラーになるということですか?
問題なく実行できました。
すみません、説明が足りませんでした。
例えばA列の1〜10までのセルに内容が含まれているとして、
一つずつチェックして、セルの内容が「#NAME?」ならば「'」を付ける処理が作りたいのです。
今の作っている段階では、
Sub Macro1()
Dim i As Integer
For i = 1 To 10
Cells(i, 1).Select
If IsError(ActiveCell.Value) Then
errval = ActiveCell.Value
Select Case errval
Case CVErr(xlErrName)
MsgBox "#NAME? エラー"
Case Else
MsgBox "他のエラーです。"
End Select
End If
Next
End Sub
と、いうチェック段階の処理です。
最終的に「MsgBox "#NAME? エラー"」の部分を「頭に'をつける処理」に変更したいのです。
なるほど、ではMsgBox "#NAME? エラー"の下に
ActiveCell.FormuraR1C1="'"+ActiveCell.FormuraR1C1
を入れてみてはどうでしょう。
よし様、素早い返答ありがとうございます。
>なるほど、ではMsgBox "#NAME? エラー"の下に
>ActiveCell.FormuraR1C1="'"+ActiveCell.FormuraR1C1
>を入れてみてはどうでしょう。
早速試してみたところ、できました!
でも「FormuraR1C1」じゃなくて、「FormulaR1C1」ですね。
一瞬エラーが出て焦りました。
よし様、素早い返答と的確なアドバイス、本当にありがとうございました。
これにて解決とさせていただきます。
ツイート | ![]() |