Excel VBA テクニック集 |
|
セル幅によるエラー表示「###」の検索します。 検索方法は、検索対象を「値」にして「#」で検索になりますが、これをマクロで行います。 単純に検索だけではうまくゆきません。 たとえばエラー表示「#DIV/0!」も対象になるので、対象外にしなければなりません。 たまたまセルの値が「#・・・」のような場合も、対象外にしなければなりません。 VBAで言うと、Range("A2").Valueはメモリ上の値、Range("A2").Textは表示上の値になるので、これをうまく使って検索します。 使い方は、ファイル一覧を使った応用の、「マクロ専用ファイル」によるマクロ実行に、下記コードを入れます。 Dim Cell_Obj As Object Dim Addrs_Frm As String Set Cell_Obj = Excel_App.ActiveSheet.Cells.Find(what:="#", LookIn:=xlValues, LookAt:=xlPart _ , MatchCase:=True, MatchByte:=False) If Cell_Obj Is Nothing Then Exit Sub End If Addrs_Frm = Cell_Obj.Address '最初のセルの位置を記録します。 Do Until Cell_Obj Is Nothing Text_Frm = Cell_Obj.Text For I = 1 To Len(Text_Frm) If Mid(Text_Frm, I, 1) <> "#" Then 'もしも「#」以外の文字が表示されていれば対象外 GoTo ErrW10 End If Next I If IsError(Cell_Obj.Value) = False _ And CStr(Cell_Obj.Value) = Cell_Obj.Text Then 'もしもセルがエラーでなくて、かつセルの値と表示が一致すれば対象外 GoTo ErrW10 End If Debug.Print Cell_Obj.Address, "セル幅不足" ErrW10: Err = 0 Set Cell_Obj = Excel_App.ActiveSheet.Cells.FindNext(Cell_Obj) If Cell_Obj Is Nothing Then Exit Do End If If Addrs_Frm = Cell_Obj.Address Then '検索して最初のセルに戻ったら終了 Exit Do End If Loop Set Cell_Obj = Nothing |
「こだわりハウス」写真館| 数学公式集| ピンポイントストリートビュー| FaceBook| Excel Vba テクニック集| Excel 計算式解析・他解析| 富山の建築家| Excel 計算式解析・他解析| 積分の定義・積分の記号の意味の研究| |