[VBScript][VBA] セルの入力項目にエラーがあるかどうかをチェックする

メモです。

通常セルに入力されている値を取得する場合は

<なんちゃら>.Cells(row, col).Value

で取得できますが、セルの入力項目にエラーがある場合、上記のプログラムでアクセスするとエラーになってしまいます。

セルの内容がエラーであるかどうかは以下のようにして事前にチェックすることができます。


Set objExcel = CreateObject("Excel.Application")
Set objSheet = <なんちゃら>
If objExcel.WorksheetFunction.IsError(objSheet.Cells(row, col)) Then
  ' エラーがあった場合の処理
Else
  ' エラーがなかった場合の処理
End If
]]>

[VBScript][VBA] Excel で入力されている一番下の行位置と一番右の列位置を取得する

メモです。

行位置

ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row

列位置

ActiveSheet.UsedRange.Columns(ActiveSheet.UsedRange.Columns.Count).Column

.NET Framework で Microsoft.Office.Interop.Excel を使う場合でも同様に取得できます。

]]>

Excel の「Worksheets」と「Sheets」の違い

通常 Excel VBA でワークシートを使っている限りは両方に大きな違いはないのですが、Excel のシートには「ワークシート」と「グラフシート」が存在するため(Excel 97 以降)、グラフシートを追加すると両者のシートの取得数が異なります。簡単に表にまとめると

Worksheets 「ワークシート」のみを扱う
Charts 「グラフシート」のみを扱う
Sheets すべてのシートを扱う

になっています。

ですので Worksheets と Sheets の違いを意識せずに使っている方は注意しましょう。

]]>