• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロ初心者です 実行時エラー1004 の解決方法を教えてください)

マクロ初心者のための実行時エラー1004の解決方法

このQ&Aのポイント
  • マクロ初心者がエクセルのマクロで実行時エラー1004が発生した場合、対処方法を教えてください。
  • エクセルのマクロで実行時エラー1004が表示された際、特にos:win2000で起こることがあります。エラーが発生している箇所は「NewSheet.Cells(y, x).FormulaR1C1 = "=SUM(RC[" & (2 - x) & "]:RC[-1])"」です。
  • マクロ初心者がエクセルのマクロで実行時エラー1004に遭遇し、データをアクセスに落とし新しいシートで月ごとの統計をとろうとしていますが、できなくなってしまいました。解決方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答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 '-----------------------------------

sigeto1107
質問者

お礼

ご回答いただきありがとうございます。 ご指摘のとおり、実はどこからコードを書いてよいのかわからず、 エラーの出ている分の近くから書いてしまいました。すみませんでした。 >まったくの初心者が、ADO オブジェクトを使うというのも、少し無理があるとは思いますし、 そうですね…おっしゃるとおりです。。。 >とれなくなってしまったという、根本的な原因とか、それはわかりませんが エクセルを終了させる際、保存はしないことになっているのですが もしかしたら保存して終了しまったかも… 教えていただいた部分を削除して貼り付けしてみましたが、 マクロは実行されませんでした。。 やはり初心者には無理がありますね。 助けていただきありがとうございました。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 >エクセルを終了させる際、保存はしないことになっているのですが >もしかしたら保存して終了しまったかも… その部分は関係がないと思います。 >マクロは実行されませんでした。。 というよりも、『同じエラーが出るかどうか』、ということですね。 >「実行時エラー1004アプリケーション定義またはオブジェクト定義のエラーです。」 このエラーは、今回のようなケースで、かなり原因が絞られるようですが、なんと言っても、こちらも試すことがあまり出来ないのです。同じスタイルで組めることは組めるのですが、手間が掛かりそうなのです。 ただ、もし、マクロが詳しい方なら、どうしてもうまくいかない場合は、EXCEL内については、EXCEL内で行わせてしまうという方法があるとは思うのですね。EXCEL側のブックを開いて、NewSheet を作った後、ActiveSheet として、シート内に数式を作ってしまうことも可能なのです。いくつか手立てはあるものの、ある程度のマクロというか、VBAの知識が必要になってしまいます。

sigeto1107
質問者

お礼

ご回答いただき本当にありがとうございました。 初心者にはやっぱり無理ですね(^_^;) これをきっかけに少し勉強してみようと思います。 ありがとうございました

関連するQ&A