Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
 ’ の検出及び削除方法
投稿日時: 22/10/08 11:00:01
投稿者: taichi

セルに数値を文字型として入力するとき、 ' を先頭に入力しますよね。
何らかの原因で ' だけが残ってしまい、マクロを動かすとエラーが発生してします。
エラー処理ではなく、事前に 見えない ' が残っていれば、削除しておきたい
のですが、CTR+F では ' が検出されません。
 
よろしくお願いいたします。

回答
投稿日時: 22/10/08 11:58:47
投稿者: hatena
投稿者のウェブサイトに移動

VBAでやるしかなさそうですね。
 

Public Sub removeSingleQquotation()
    Dim c As Range    
    For Each c In ActiveSheet.UsedRange
        If c.Value = "'" Then c.ClearContents
    Next
End Sub

 
上記で行けるかと思ったのですが、判定できませんでした。
 c.Text = "'" でもだめです。
 c.Value = "" のようです。しかし空白セルではなく、定数セルの扱いのようですので、
下記でいけました。
 
Public Sub removeSingleQquotation()
    Dim c As Range    
    For Each c In ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants)
        If c.Value = "" Then c.ClearContents
    Next
End Sub

回答
投稿日時: 22/10/08 12:37:43
投稿者: simple

r.PrefixCharacter <> "" And Len(r) = 0
で判定するとかの方法もありそうです。

回答
投稿日時: 22/10/08 18:53:48
投稿者: WinArrow
投稿者のウェブサイトに移動

代案

    Dim Myrng As Range, ShiKI As String
    
    Set Myrng = Range("A2")
    ShiKI = "CELL(""prefix""," & Myrng.Address(0, 0) & ")"
    If Application.Evaluate(ShiKI) = "'" And Myrng.Value = "" Then
        Myrng.ClearContents
    End If

投稿日時: 22/10/09 07:00:55
投稿者: taichi

hatena、simple、WinArrow さん ありがとうございました。
 
やはり「VBAでやるしかなさそうですね。」ですね。
 
定数(xlCellTypeConstants)なのに、ヌル(c.Value = "")なんて
少し変なきもしますね。Len(r) = 0 もなんかしっくりこないです。
 
いままで見たこともない prefix 、Application.Evaluate を
これから勉強していきます。