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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBAで教えて頂きたいのですが? 2 2022/12/31 20:28
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) セルS2に入力した「月」と一致したB列の右隣へセルS110の値を転記する下記マクロを実行するとエラー 2 2022/12/06 17:32
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
実行時エラー3001「引数が間違...
-
ExcelVBA Range クラスの Page...
-
なぜこんな初歩的なVBAのIf文で...
-
ACCESSのエラーで困っています
-
VBAがブレークモードになっ...
-
Application.ActiveInspectorで...
-
職場から目的地までの距離集計
-
VBS実行時エラー オブジェクト...
-
DataGridView からの値取得に関...
-
Excel2019 ワークシートのコピ...
-
VB6+SQL サーバー 2000 で 実行...
-
Outlook.ApplicationをCreateOb...
-
VBAでのエラー
-
ASP.NET OleDbConnectionが定義...
-
Access マクロでのテーブル削除
-
一般ODBCエラーについて
-
日本語環境下で作成したマクロ...
-
【Excel VBA】マクロをボタンに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
【Excel VBA】マクロをボタンに...
-
VBAでのエラー
-
マクロについて教えてください...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAがブレークモードになっ...
-
実行時エラー3001「引数が間違...
-
ExcelVBA Range クラスの Page...
-
VBS実行時エラー オブジェクト...
-
EXCEL VBAマクロ中断でデバッグ...
-
Outlook.ApplicationをCreateOb...
-
VBSで変数の宣言はできないので...
-
VBAのコードがエラーになっ...
-
実行時エラー -'-2147417848
-
ADODB.Streamを使用してUTF-8を...
-
EXCEL/VBAで、自分のPCだけエラ...
-
OLEDB.NETで接続できない
-
プロシージャ名の取得
-
VB6+SQL サーバー 2000 で 実行...
おすすめ情報