
マクロ初心者です
仕事で使っていたエクセルのマクロにエラーが出てしまいました。
「実行時エラー1004アプリケーション定義またはオブジェクト定義のエラーです。」
os:win2000
x = 0
y = 1
w_prv = "*"
Do While rc.EOF = False
If w_prv = "*" Or w_prv <> rc.Fields("種別名") Then
If w_prv <> "*" Then
NewSheet.Cells(y, x).FormulaR1C1 = "=SUM(RC[" & (2 - x) & "]:RC[-1])"
End If
y = y + 1
x = 2
End If
If y = 2 Then
NewSheet.Cells(1, x) = rc.Fields("所属名")
End If
If x = 2 Then
NewSheet.Cells(y, 1) = rc.Fields("種別名")
End If
NewSheet.Cells(y, x) = rc.Fields("数量計")
x = x + 1
w_prv = rc.Fields("種別名")
rc.MoveNext
Loop
NewSheet.Cells(y, x).FormulaR1C1 = "=SUM(RC[" & (2 - x) & "]:RC[-1])"
y = y + 1
For i = 2 To x
NewSheet.Cells(y, i).FormulaR1C1 = "=SUM(R[" & (2 - y) & "]C:R[-1]C)"
Next
NewSheet.Cells(1, x) = "合計"
NewSheet.Cells(y, 1) = "合計"
rc.Close
Call closeDB
End Sub
**************************************************
NewSheet.Cells(y, x).FormulaR1C1 = "=SUM(RC[" & (2 - x) & "]:RC[-1])"
↑
ここでエラーが出ているみたいです。
エクセルのマクロで入力したデータをアクセスに落としそこから新しいシートで月ごとの統計をとれるようになっていたのですが、とれなくなってしまいました。
こんな説明でお分かりになりますでしょうか?
まったくの初心者なので…
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
こんにちは。
内容はわかるけれども、途中からというのはどうも、あまり質問としては良くないですね。一応、ある程度、答えが必要なら、他人にわからせるためのコードは提供してもらいたいなって思います。
まったくの初心者が、ADO オブジェクトを使うというのも、少し無理があるとは思いますし、
>エクセルのマクロで入力したデータをアクセスに落としそこから新しいシートで月ごとの統計をとれるようになっていたのですが、とれなくなってしまいました。
とれなくなってしまったという、根本的な原因とか、それはわかりませんが、それらの数式に、全部、「'(シングルクォーテーション)」を入れたらどうでしょうか?しかし、そのままでは、文字列ですから、「=」の数式の入ったところは、少し遅くなるけれど、以下のように変えてみたらどうでしょうか?
NewSheet.Cells(y, x).FormulaR1C1 = "=SUM(RC[" & (2 - x) & "]:RC[-1])"
y = y + 1
For i = 2 To x
NewSheet.Cells(y, i).FormulaR1C1 = "=SUM(R[" & (2 - y) & "]C:R[-1]C)"
Next
↓
'-----------------------------------
With NewSheet
.Cells(y, x).FormulaR1C1 = "'=SUM(RC[" & (2 - x) & "]:RC[-1])"
.Cells(y, x).Value = .Cells(y, x).Value '(たぶん必要)
y = y + 1
For i = 2 To x
.Cells(y, i).FormulaR1C1 = "'=SUM(R[" & (2 - y) & "]C:R[-1]C)"
.Cells(y, i).Value = .Cells(y, i).Value '(たぶん必要)
Next
End With
'-----------------------------------
ご回答いただきありがとうございます。
ご指摘のとおり、実はどこからコードを書いてよいのかわからず、
エラーの出ている分の近くから書いてしまいました。すみませんでした。
>まったくの初心者が、ADO オブジェクトを使うというのも、少し無理があるとは思いますし、
そうですね…おっしゃるとおりです。。。
>とれなくなってしまったという、根本的な原因とか、それはわかりませんが
エクセルを終了させる際、保存はしないことになっているのですが
もしかしたら保存して終了しまったかも…
教えていただいた部分を削除して貼り付けしてみましたが、
マクロは実行されませんでした。。
やはり初心者には無理がありますね。
助けていただきありがとうございました。
No.2
- 回答日時:
こんにちは。
>エクセルを終了させる際、保存はしないことになっているのですが
>もしかしたら保存して終了しまったかも…
その部分は関係がないと思います。
>マクロは実行されませんでした。。
というよりも、『同じエラーが出るかどうか』、ということですね。
>「実行時エラー1004アプリケーション定義またはオブジェクト定義のエラーです。」
このエラーは、今回のようなケースで、かなり原因が絞られるようですが、なんと言っても、こちらも試すことがあまり出来ないのです。同じスタイルで組めることは組めるのですが、手間が掛かりそうなのです。
ただ、もし、マクロが詳しい方なら、どうしてもうまくいかない場合は、EXCEL内については、EXCEL内で行わせてしまうという方法があるとは思うのですね。EXCEL側のブックを開いて、NewSheet を作った後、ActiveSheet として、シート内に数式を作ってしまうことも可能なのです。いくつか手立てはあるものの、ある程度のマクロというか、VBAの知識が必要になってしまいます。
ご回答いただき本当にありがとうございました。
初心者にはやっぱり無理ですね(^_^;)
これをきっかけに少し勉強してみようと思います。
ありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) 「1004:アプリケーション定義またはオブジェクト定義のエラー」への解消方法に関して 1 2023/07/09 11:47
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) excel VBA if文について 3 2022/03/27 17:42
- Excel(エクセル) R列の1111/11/11以外、且つQ列の×の条件で該当行のAからAE列までオレンジに塗りつぶす 2 2022/07/02 10:18
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
SQL実行エラー
-
ADODB.Streamを使用してUTF-8を...
-
EXCEL/VBAで、自分のPCだけエラ...
-
実行時エラー -'-2147417848
-
VBAがブレークモードになっ...
-
マクロについて教えてください...
-
実行時エラー48発生時のDLL特定...
-
エラー1004 PDFの保存ができま...
-
VB6+SQL サーバー 2000 で 実行...
-
『実行時エラー 5 プロシージャ...
-
【Excel VBA】マクロをボタンに...
-
なぜこんな初歩的なVBAのIf文で...
-
トランスポートレベルのエラー
-
VBAの実行時エラー91!どうしよ...
-
【VBA】ボタンに登録したマクロ...
-
実行時エラー91について
-
ExcelVBAマクロコードの「実行...
-
IEを操作する エクセルマクロ...
-
sub又はfunctionが定義されてい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAがブレークモードになっ...
-
実行時エラー -'-2147417848
-
ExcelVBA Range クラスの Page...
-
マクロについて教えてください...
-
VBAでのエラー
-
【Excel VBA】マクロをボタンに...
-
実行時エラー48発生時のDLL特定...
-
EXCEL VBAマクロ中断でデバッグ...
-
なぜエラーになるのでしょうか...
-
実行時エラー3001「引数が間違...
-
OLEDB.NETで接続できない
-
INSERT INTOステートメント構文...
-
VBAのエラー発生場所をメッセー...
-
VB6+SQL サーバー 2000 で 実行...
-
Outlook.ApplicationをCreateOb...
-
ADODB.Streamを使用してUTF-8を...
-
カーソルオープンでエラー(ORA...
-
Invalid procedure call or arg...
おすすめ情報