エラー一覧

VBA

=[test.xlsx]Sheet1!$A$1 がエラーになる

他のブックの値をマクロなしで取得する場合に使う数式なので、

ブックの名前が変わると当然エラーになる

また、test.xlsxを開いた状態にしないとブックを開く際に

ダイアログが表示されるため注意

#NAME

=数式 のスペルが間違っている

例えばAverageがAveregeになっている等

#REF!となる

=数式 の中に存在しないセルが含まれている

(VLOOKUPの場合は次の項を参照すること)

数式が間違っていないのにVLOOKUP関数が#REF!となる

一旦、VLOOKUPの使い方について説明する

VLOOKUP(検索値、検索範囲、左から何列目を取得、検索方法)であり、

検索値B2を検索範囲AC6:AC100の中から探し、

AC30だったら左から5列目のE30の値を取得する

検索方法は完全一致の場合0またはFALSEとする

ここで注意したいのは、BQ列はAC列よりも右にあるので、

左から69列目のBQ30の値は取得できないことだ

検索範囲よりも右の列の値を指定すると#REF!となる

セルの数式を見ると「=xlfs.XLOOKUP()」となっている

XLOOKUP関数はExcel2021で登場した関数なので、

Excel2016や2019では使えなかった

アップデートによりxlfs.XLOOKUP()と表示されて使えるようになった

型が一致しません

例)Dim L As Long

    L = ws.Range(“A1”)

原因)RangeプロパティはLong型ではなくRange型だから

解決)ws.Range(“A1”).Valueとすること

プロパティ戻り値
RangeRange
CellsRange
RowsRange
EntireRowRange
OffsetRange
ValueVariant
TextString
RowLong
CountLong

引数は省略できません

例) StrConv(Ranger(“A1”)  )

原因) 第2引数vbNarrowが抜けている

オブジェクトが必要です

例) Dim ws As Worksheet   ws  = ~~~

原因) Setをつけ忘れている

インデックスが有効な範囲にありません

原因) 存在しないWorksheetやCellsを参照しようとしている

Matchプロパティを取得できません

原因) 空白のセルに対して同じセルを探そうとしている

エラー1004

原因)存在しないファイルを開こうとしている

解決)トラストセンターの設定→マクロの設定→VBAプロジェクトモデルへのアク       セスを信頼するにチェック

すべてのマクロが無効になっています

解決)トラストセンターの設定→マクロの設定→すべてのマクロを有効にするに        チェック

ファイル形式と拡張子が一致しません

原因)メールで送付された1997-2003のExcelファイルを開こうとした

解決)送信前に1997-2003のExcelファイルをマクロ有効ファイルで保存してもらう

すべての結合セルを同じサイズにする必要があります

原因)VBAで並び替えする際、結合セルの大きさがバラバラ

解決)結合セルをなくす

次の機能はマクロなしのブックに保存できません VBプロジェクト

解決)「いいえ」をクリックした後、「マクロ有効ブック」で上書き保存

マクロなしのブックには保存できません

解決)「いいえ」をクリックした後、「マクロ有効ブック」で上書き保存

このブックには安全でない可能性のある外部ソースへのリンクが含まれています

原因)他のブックへの参照セルが含まれていて、そのブックにアクセスできない

解決)リンクを更新すると数式がなくなるので更新しなくていい

メソッドまたはデータメンバーが見つかりません

例)Dim ws As Worksheet    Set ws = Workbooks(“勤務表令和4年”)

原因)Worksheetで宣言したwsをWorkbookとして使用している

プロシージャの外では無効です

例)プロシージャ外でDim x As Long   x = 10

解決1)プロシージャ内でx = 10を書く

解決2)定数として宣言する Const x = 10

WorksheetFunctionクラスのMatchプロパティを取得できません

原因)Match関数で「金澤弘行」を探していたが、「金澤 弘行」しかなかった

解決)全角半角スペースを削除する

オブジェクトは、このプロパティまたはメソッドをサポートしていません

例)Dim ws As Worksheet   Set ws = Workbooks(“給与令和4年”)

原因)Workbooks(“~”)というメソッドはない

解決)Workbooks.Open(“~”)に直す

セキュリティリスク このファイルのソースが信頼できないため、Microsoftによりマクロの実行がブロックされました(赤いメッセージ)

例)次のExcelファイルを開いた場合

・車内の共有フォルダー等のIPアドレス経由で開いたマクロ付きのエクセル

・メールに添付されたマクロ付きのエクセル

・OneDrive等のクラウドサービスで開いたマクロ付きのエクセル

原因)これまではマクロを利用したファイルを開くと黄色いメッセージバーが表示      されていた。黄色いのは手動で解除できた。しかし、Microsoftはマクロを利      用したサイバー攻撃に対する対策強化した(2022/6)。赤いメッセージバー      が表示されたファイルにはMarkOfTheWeb(MOTW)という属性がついている。

      インターネットオプションで共有フォルダを「サイバー攻撃を受けない信頼で      きる場所」として登録する

変更しようとしているセルやグラフは保護されているシート上にあります

解決)校閲タブのシート保護の解除をクリックして、保護を解除

Rangeメソッドは失敗しました

例)Dim ws As Worksheet   Set ws1 = Worksheets(“Sheet1”)

      Dim ws As Worksheet   Set ws2 = Worksheets(“Sheet2”)

                   ws1.Range( Cells(1, 1), Cells(3, 3) ) = “1”

     をSheet2を選択した状態で実行

原因)Sheet2を選択した状態で実行すると

    ws1.Range( Sheet2.Cells(1, 1), Sheet2.Cells(3, 3) ) = “1”

   となるため、Sheet1の中のSheet2を参照しようとしてエラーになる

解決)With ws1

.Range( .Cells(1, 1), .Cells(3, 3) ) = “1”

End With

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1093872400
BACK