
Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1004
アプリケーション定義またはオブジェクト定義エラーです。」と出るようになりました。どこか間違っているのでしょうか。解決方法を教えて下さい、、
(使っているのはmac、2012Microsoft corporation)
Sub 検索()
Set ws1 = Worksheets("メイン")
Set ws2 = Worksheets("DB")
Call 削除
'項目名のコピー
ws2.Rows(1).Copy
ws1.Range("A4").PasteSpecial
Application.CutCopyMode = False
ws1.Range("B2").Select
Dim keyword As String
keyword = ws1.Range("B2").Value
Dim x, y, z As Long
Dim word As String
'項目数のカウント
z = 1
Do While ws2.Cells(1, z).Value <> ""
z = z + 1
Loop
z = z - 1
'検索ワードが含まれる内容を抽出
x = 5
y = 2
Do While ws2.Cells(y, 1).Value <> ""
'検索対象をまとめる
word = ""
For i = 1 To z
word = word & ws2.Cells(y, i).Value
Next i
'検索を行う
If word Like "*" & keyword & "*" Then
For i = 1 To z
ws1.Cells(x, i).Value = ws2.Cells(y, i).Value
Next i
x = x + 1
End If
y = y + 1
Loop
End Sub
Sub 削除()
Dim x, y As Long
'項目数のカウント
x = 1
Do While ws1.Cells(7, x).Value <> ""
x = x + 1
Loop
x = x - 1
'行数のカウント
y = 5
Do While ws1.Cells(y, 1).Value <> ""
y = y + 1
Loop
y = y - 1
ws1.Range(ws1.Cells(5, 1), ws1.Cells(y, x)).Value = ""
End Sub
No.1ベストアンサー
- 回答日時:
Dim ws1 As Worksheet
Dim ws2 As Worksheet
が見当たりませんが、どこで定義していますか?
先ずはOption Explicitを宣言してみてください。
Option Explicitって何?
http://officetanaka.net/excel/vba/beginner/11.htm
Sub 検索()
Set ws1 = Worksheets("メイン")
Set ws2 = Worksheets("DB")
ですらエラーになりませんか?
おそらく、
Sub 削除()でのws1、ws2と、Sub 検索()でのws1,ws2が同じのであることが必要なようですので、Subプロシージャーの外で定義しておく必要があります。
回答ありがとうございます。
説明不足ですみません。既に外で
Dim ws1,ws2 As Worksheetとしているのですが、それでもエラーになってしまうんです、、
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBAがブレークモードになっ...
-
Access2000での未定義関数repla...
-
マクロについて教えてください...
-
【マクロ】エラー【#DIV/0!】が...
-
実行時エラー -'-2147417848
-
ExcelVBA Range クラスの Page...
-
Invalid procedure call or arg...
-
実行時エラー48発生時のDLL特定...
-
OLEDB.NETで接続できない
-
【Excel VBA】マクロをボタンに...
-
ExcelでWindowsのイベントログ...
-
VBAでピボットテーブルの作成(...
-
VBA 新しいフォルダを作成する方法
-
EXCEL/VBAで、自分のPCだけエラ...
-
VBAでのエラー
-
『実行時エラー 5 プロシージャ...
-
VBで構造体を使うさ際の64k...
-
AccessVBAでExcelを起動し、罫...
-
カーソルオープンでエラー(ORA...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBAがブレークモードになっ...
-
実行時エラー -'-2147417848
-
【マクロ】エラー【#DIV/0!】が...
-
なぜこんな初歩的なVBAのIf文で...
-
マクロについて教えてください...
-
VBAでのエラー
-
ExcelVBA Range クラスの Page...
-
実行時エラー48発生時のDLL特定...
-
実行時エラー3001「引数が間違...
-
VBAで、定数式が必要ですのエラ...
-
Outlook.ApplicationをCreateOb...
-
あとこれさえ出来ればよいので...
-
VB6+SQL サーバー 2000 で 実行...
-
VBS実行時エラー オブジェクト...
-
EXCEL/VBAで、自分のPCだけエラ...
-
EXCEL VBAマクロ中断でデバッグ...
-
VBAのエラー発生場所をメッセー...
-
なぜエラーになるのでしょうか...
-
Invalid procedure call or arg...
おすすめ情報