エラー一覧
=[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とすること
プロパティ | 戻り値 |
Range | Range |
Cells | Range |
Rows | Range |
EntireRow | Range |
Offset | Range |
Value | Variant |
Text | String |
Row | Long |
Count | Long |
引数は省略できません
例) 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