【最大10000ポイント】当たる!!質問投稿キャンペーン!

microsoft office2007のexcelで「終了」を押すといつも実行時エラー1004が出ます。
何もしていない場合(空のファイル)でも同じです。エラーメッセージを終了すると何か内容があるとファイルを保存するか聞いてきます。実害はないのでその都度エラーメッセージを終わらせていましたが最近自動終了をマクロで書いてPCをシャットダウンしていますが、再度立ち上げてEXCELを開くと前のファイルが正常に終了していないと出てきます。

office2007の再インストール、診断プログラムの実行、システムの復元などはやってみたのですが
直りません。

さらに問題はoffice2007では右クリックが不安定です。何度かクリックしてやっと出るとか、クリック
するごとにチラットでるがすぐ消えるなどの現象がありこれも関係しているかとも思われます。
デスクトップでは右クリックは安定して出ます。(OSはwinndows vista home  premium)
OSをwindows7にすれば直るかとも思いますが、何か良い方法はないか教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

実行時エラー1004の下にエラーの内容が表示されていると思いますが、何て表示されていますか。



テンプレートが壊れているような気もしますが、再インストールする時にアンインストールして関連のディレクトリやファイルも削除してからインストールしましたか。

この辺りの事は、下記の「詳細」の「自分で解決する」に詳しく書かれています。

http://support.microsoft.com/kb/928218/
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
ご教示いただいたサイトは前に何度かやったことがるのでだめだと思いましたが、ためしにOffice の
アンインストールをしようとしたらできなくなっており、ご教示のサイトのfix itをやってみて再インストールを行い、excelを起動したところ「このアドインはmicrosoft office excelで実行できません。この機能は現在インストールされていません。インストールしますか」と出ました。ただこのアドインの名前が出ていませんでしたが、アドインは使っているので、「ハイ」としてexcelを終了させようとしたら、相変わらず1004が出ました。再度excelをアンインストールしようとしたらできなくなっておりこのアドインがおかしいと思い、fix itを行い、再インストール、excel起動時に出たアドイン云々で「いいえ」を選択したところ、終了は実行時エラーなしで終了できました。
アドインの名前がわからないのが不思議です。設定にある有効なアドインにはないのですが、オプションでアクティブなアプリケーションアドインにはNXpowerlite Addinというのがありますが、自分では
心当たりがありません。これが問題かもと思っています。
右クリックもだいぶ良くなったようです。
ありがとうございました。

お礼日時:2010/11/28 23:53

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル マクロ実行時エラー’1004’

For~Next構文内でシートコピーしていると途中で、
実行時エラー'1004’
WorksheetクラスのCopyメソッドが失敗しました。
が表示されることがあります。

該当のFor~Next文は10回以上実行されているので、コードの誤りではないと思うのですが、なぜ「Copyメソッドが失敗」するのかわかりません。
理由/対処方法がわかればありがたいと思い質問させていただきます。

**該当コード**
Sub 評価シート作成()
  Sheets(社員一覧).Select
  行 = 1
  Do
    ReDim Preserve 社員CD(行)
    ReDim Preserve 氏名(行)
    社員CD(行) = Cells(行 + 1, 1).Value
    氏名(行) = Cells(行 + 1, 2).Value
    行 = 行 + 1
  Loop Until Cells(行, 1) = ""
  人数 = 行 - 2
  For 回数 = 1 To 人数
    Sheets(評価シート).Select
    Sheets(評価シート).Copy after:=Sheets(評価シート)
    ActiveSheet.Name = 氏名(回数)
    Cells(4, 5) = 氏名(回数)
    Cells(4, 3) = 社員CD(回数)
  Next 回数
End Sub
*****************************
よろしくお願いします

For~Next構文内でシートコピーしていると途中で、
実行時エラー'1004’
WorksheetクラスのCopyメソッドが失敗しました。
が表示されることがあります。

該当のFor~Next文は10回以上実行されているので、コードの誤りではないと思うのですが、なぜ「Copyメソッドが失敗」するのかわかりません。
理由/対処方法がわかればありがたいと思い質問させていただきます。

**該当コード**
Sub 評価シート作成()
  Sheets(社員一覧).Select
  行 = 1
  Do
    ReDim Preserve 社員CD(行)
   ...続きを読む

Aベストアンサー

ひょっとしてこれに該当するのかな?

Excel でプログラムを使用してワークシートをコピーするとランタイム エラー 1004 が発生する
http://support.microsoft.com/kb/210684/ja

Q【Excel VBA】マクロでExcel自体を終了させたい

環境:WindowsXP、Excel2003

マクロでエクセルを終了(ブックを閉じて、アプリケーション自体も終了)させたいのですが、以下のコードではアプリケーションが閉じてくれません。

ThisWorkbook.Close
ExcObj.Quit
Application.Quit

どこか悪いところはありますでしょうか?

よろしくお願いします。

Aベストアンサー

普通に考えれば質問者のコードで上手くいきそうですが
hana-hana3さんの回答にもあるようにThisWorkBook.Closeでコード終了となりますので
Application.QuitをThisWorkBook.Closeの前にもってこないといけません。
Application.Quitはそれがあるプロシージャのコードが全て終わるまで
その実行を保留するちょと特別動作をします。

'-------------------------------------
 Application.Quit
 ThisWorkbook.Close
'-------------------------------------
 
 

Qマクロ初心者です 実行時エラー1004 の解決方法を教えてください

マクロ初心者です
仕事で使っていたエクセルのマクロにエラーが出てしまいました。

「実行時エラー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])"

ここでエラーが出ているみたいです。
エクセルのマクロで入力したデータをアクセスに落としそこから新しいシートで月ごとの統計をとれるようになっていたのですが、とれなくなってしまいました。

こんな説明でお分かりになりますでしょうか?
まったくの初心者なので…
よろしくお願いいたします。

マクロ初心者です
仕事で使っていたエクセルのマクロにエラーが出てしまいました。

「実行時エラー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
...続きを読む

Aベストアンサー

こんにちは。

内容はわかるけれども、途中からというのはどうも、あまり質問としては良くないですね。一応、ある程度、答えが必要なら、他人にわからせるためのコードは提供してもらいたいなって思います。

まったくの初心者が、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 オブジェクトを使うというのも、少し無理があるとは思いますし、

>エクセルのマクロで入力したデータをアクセスに落としそこから新しいシートで月ごとの統計をとれるようになっていたのですが、とれなくなってしまいました。

とれなくなってしまったという、根本的な原...続きを読む

QVBA 実行時エラー1004 rangeメソッドは失敗しました。globalオブジェクトのエラー

始めまして、VBA初心者のものです。
ただいまエクセルでグラフを作成しています。作業自体は単純作業の繰り返しなのでVBAを用いてやりたいのですが、マクロを実行したときに実行時エラー’1004’rangeメソッドは失敗しました。’_global’オブジェクトとメッセージが出て、実行できません。 デバックをすると以下の5行目で黄色のバーが出ていました。自分なりに原因を考えたのですがrangeの関係するところに、Range("A8:A1587,e8:e1587")というような変数を用いないやり方でやると上手くいくので、変数に関する定義がまずいと思うのですが、それ以上の事は分かりません。どなたか、分かる方がおりましたら、よろしくお願いします。また、プログラムは以下のようになります。

Sub 繰り返し()
'繰り返し
Dim s As Integer
For s = 0 To 17
Range("cells(8,1):cells(1580,1),cells(8,s+2):cells(1580,s+2)").Select
Range("cells(8,s+2)").Activate
Charts.Add
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=Sheets("20081216_210647").Range( _
"cells(8,1):cells(1580,1),cells(8,s+2):cells(1580,s+2)"), PlotBy:=xlColumns
ActiveChart.SeriesCollection(1).Name = "=""0810p2x"""
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="0810p2x"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "0810p2x"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "t"
.Axes(xlValue, xlPrimary).HasTitle = False
End With
Next
End Sub

始めまして、VBA初心者のものです。
ただいまエクセルでグラフを作成しています。作業自体は単純作業の繰り返しなのでVBAを用いてやりたいのですが、マクロを実行したときに実行時エラー’1004’rangeメソッドは失敗しました。’_global’オブジェクトとメッセージが出て、実行できません。 デバックをすると以下の5行目で黄色のバーが出ていました。自分なりに原因を考えたのですがrangeの関係するところに、Range("A8:A1587,e8:e1587")というような変数を用いないやり方でやると上手くいくので、変数に関する定義...続きを読む

Aベストアンサー

>ご指摘を受けたところを書き換えて回してみた結果、書き換えた箇所
>でエラーがでます。(実行時エラー’1004’’cells’メソッドは失敗
>しました。’global’オブジェクト)
>しかし、何が原因でエラーになるか自分では分かりません。

≪例1≫
Range(Cells(8, 1), Cells(1587, 2)).Select
上記の例では、RangeとかCellsの上位オブジェクトであるシート名が省略されています。
ActiveSheet.Range(ActiveSheet.Cells(8, 1), ActiveSheet.Cells(1587, 2)).Select
というわけです。
マクロ実行時に、Activeな(Excelで表示されている)シートが上位オブジェクトとして、自動的に認識されます。

≪例2≫
Sheets("Sheet2").Range(Cells(8, 1), Cells(1587, 2)).Select
上記の例では、Rangeのみシート名が記述されています。
Sheets("Sheet2").Range(ActiveSheet.Cells(8, 1), ActiveSheet.Cells(1587, 2)).Select
というわけです。
Activeなシートが、Sheet2の場合はエラーになりません。
しかし、ActiveなシートがSheet2以外の場合、エラーが発生します。
直前に、
Sheets("Sheet1").Select
などとしていれば、ActiveシートがSheet1になっていますから、エラーになります。

Sheets("Sheet2").Range(Sheets("Sheet2").Cells(8, 1), Sheets("Sheet2").Cells(1587, 2)).Select
と書いておけば安心です。
Withステートメントを使えばスッキリ纏めることができます。
With Sheets("Sheet2")
  .Range(.Cells(8, 1), .Cells(1587, 2)).Select
End With

# Sheets("Sheet2")の上位オブジェクトが省略されていることにも気がついてください。

>そこで自分で基礎を勉強したいのですが推薦できる参考書などがござ
>いましたら、教えていただけませんか?
私自身は、入門書程度の雑誌を1冊買っただけです。どれが良いとかはよく分かりません。
「マクロの記録」を活用して、参考コードを取得し、汎用性のあるコードに編集しています。
新しい単語があれば、文字カーソルを単語の上に置き、F1キーを押してVBAのヘルプを必ず見るようにしています。
躓いた時は、Web検索して欲しい情報を得たり、あるいは、こうした掲示板で先輩方のお力をお借りしています。

Excel(エクセル)VBA入門:目次
http://oshiete1.goo.ne.jp/kotaeru_reply.php3?q=4651404
エクセル入門・初級編
http://www.kenzo30.com/excel_kiso.htm

>ご指摘を受けたところを書き換えて回してみた結果、書き換えた箇所
>でエラーがでます。(実行時エラー’1004’’cells’メソッドは失敗
>しました。’global’オブジェクト)
>しかし、何が原因でエラーになるか自分では分かりません。

≪例1≫
Range(Cells(8, 1), Cells(1587, 2)).Select
上記の例では、RangeとかCellsの上位オブジェクトであるシート名が省略されています。
ActiveSheet.Range(ActiveSheet.Cells(8, 1), ActiveSheet.Cells(1587, 2)).Select
というわけです。
マクロ実行時に、Activeな...続きを読む

Q2007から2010excel マクロ実行時エラー

2007のexcelだと上手く動くのですが、2010のexcelだと”実行時エラー1004”
「プログラミングによるVisual Basicプロジェクトへのアクセスは信頼性に欠けます」
と表示されます。デバックすると下記の部分に色がつきます。どのような記述にしたら
回避できるか教えてください。

For Each objVBCOMPO In NewWkbook.VBProject.VBComponents←黄色になります!
With objVBCOMPO.CodeModule
' コードを削除(全行)
lngLines = .CountOfLines
If lngLines <> 0 Then .DeleteLines 1, lngLines
End With
Next objVBCOMPO

Aベストアンサー

こんにちは。

それ自体は、単なるセキュリティの問題でしょう?
セキュリティセンターのマクロの設定で、(開発タブからでも可)
□VBAプロジェクト オブジェクトモデルへのアクセスを信頼する
にチェックが入っていないのだと思います。

ところで、このマクロって何ですか?
NewWkbook というのは、クラスで設定されていることを意味するように思えます。ふつうでは考えられないコードです。これは自ブックで行えば自爆型マクロという名称が付くのですが、この場合は、新しく開いたブックに、マクロ(ウィルス)が入っていたら、それを削除しろという意味に取れます。
私はいろんなことをマクロで試してきましたが、それでも、このようなマクロは書きませんでした。

悪いと言っているわけではないのですが、もし、私の想像が正しければ、一般的ユーザーには書かないコードです。アンチウイルスソフトに依存した方がよいと思います。

QエクセルVBA 別シートの複数のセルの値をコピーする方法

いつもお世話になります。

Dim sh1, sh2 As Worksheet
Set sh1 = Worksheets("sheet1")
Set sh2 = Worksheets("sheet2")

sh1.Range("C6").Value = sh2.Range("F5").Value
として、1つのセルの値ならコピーできるのですが、
sh1.Range("C6:C10").Value = sh2.Range("F5;F9").Value
としても、セルの値を持ってくることができません。
どのように書けば良いのでしょうか?

ちなみに今は、
sh2.Range("F5:F9").Copy
sh1.Range("C5:C9").PasteSpecial Paste:=xlValues
としているのですが、上記だとセルを範囲指定してしまって作業が見えるのでカッコ悪いのです。

Aベストアンサー

7-samuraiの質問ですみません。
No5のimogasiさん、いつもお世話様です。

Sub test01()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("sheet2")
Set sh2 = Worksheets("sheet1")
sh1.Range("c1:c5").Value = sh2.Range("A1:A5").Value
End Sub

で、うまくいきますよ。
複数セルの場合Valueは省略できないようです。

QEXCELアドインファイル開けません

こんにちわ。OS98SE
Office2000personal
EXCELで、藤本壱さんの株価テクニカル分析アドインを、
入れてるんですが、
最近、Access95で、EXCEL&ACCESSで、
遊んだからかなあ、
Microsoft Visual Basic
ファイル開けません
と、ご丁寧に、2回出てきます。
office再インストールしたんですが、
変わらず、
アドイン入れなおしても、無理なんです。

いい解決方法ないでしょうか?
よろしく。

Aベストアンサー

pirompas 様へ
Wendy02です。

>C:\Program Files\Microsoft Office\\Office\Library
たくさんアドイン入ってました。

既存のものは、絶対に動かさないでください。ふたつのアドイン用のフォルダは、Win98SEでは、あまり区別がないようですが、それなりの考えの元に割り振りしてありますから。

QEXCEL VBA シートをコピーする時にエラーが発生してしまう件

EXCEL VBAでシートをコピーするマクロを作成しているのですが、【10】にて時々エラーが発生してしまいます。100シート分ぐらいをコピーしたいのですが、途中で30シートぐらいの所で止まってしまいます。
(シートが10前後だと問題なく処理が終ります)
止まってしまうシートはまちまちなので、
シート名称が問題だとは考えにくいです。

ちなみに【8】でのsheets_nameは取得できてます。
前後に何かを入れることにより解決するのか、
ソース本体をいじれば解決するのか、

詳しい方、何卒、解決方法を
ご指導いただけますよう宜しくお願いします。

【1】 '取得した配列の数だけループを行う。
【2】 For i = LBound(test) To 配列数 - 1
【3】
【4】 列番号 = Mid(test(i), 4, 3)
【5】 Debug.Print "test(" & i; ") : " & test(i)

【6】
【7】 'FORMATシートをコピーし、その名称を変数名にする
【8】 sheets_name = Worksheets("実績").Cells(18, 列番号).Value
【9】
【10】 Worksheets("FORMAT").Copy After:=Sheets("FORMAT")
【11】
【12】 ActiveSheet.Name = (sheets_name)
【13】 Cells(4, 3) = (sheets_name)

EXCEL VBAでシートをコピーするマクロを作成しているのですが、【10】にて時々エラーが発生してしまいます。100シート分ぐらいをコピーしたいのですが、途中で30シートぐらいの所で止まってしまいます。
(シートが10前後だと問題なく処理が終ります)
止まってしまうシートはまちまちなので、
シート名称が問題だとは考えにくいです。

ちなみに【8】でのsheets_nameは取得できてます。
前後に何かを入れることにより解決するのか、
ソース本体をいじれば解決するのか、

詳しい方、何卒、解決方法を
...続きを読む

Aベストアンサー

コードとしては下記と等価だと思います。
空のシートでやってみると、スムーズにうまく行きました。
下記のシートSheet1のデータ・関数式他メモリの使用状況によるのではないでしょうか。
コピーの終了を見届けて、次のループに入ればよいのかもしれませんが、可能か、どうすればよいか方法が私にはわかりません。
Sub test02()
For i = 1 To 100
sheets_name = i
Worksheets("Sheet1").Copy After:=Sheets("sheet1")
ActiveSheet.Name = sheets_name
Next i
End Sub
エクセル2002でXP標準メモリ容量程度です。

QEXCELファイルのカレントフォルダを取得するには?

EXCELファイルのカレントフォルダを取得するには?

C:\経理\予算.xls

D:\2005年度\予算.xls

EXCEL97ファイルがあります。

VBAで
  カレントフォルダ名
(C:\経理\,D:\2005年度\)
を取得する事は可能でしょうか?

CURDIRでは上手い方法が見つかりませんでした。

Aベストアンサー

こんばんは。
Excel97 でも、同じですね。以下で試してみてください。

Sub test()
'このブックのパス
a = ThisWorkbook.Path
'アクティブブックのパス
b = ActiveWorkbook.Path
'Excelで設定されたデフォルトパス
c = Application.DefaultFilePath
'カレントディレクトリ
d = CurDir
MsgBox "このブックのパス   : " & a & Chr(13) & _
   "アクティブブックのパス: " & b & Chr(13) & _
   "デフォルトパス    : " & c & Chr(13) & _
   "カレントディレクトリ : " & d & Chr(13)
End Sub

QExcelでセル内の文字をファイル名にする方法と、下のSheet1タブを2列にする方法は?

Excel2003です。OSはWinXPです。質問は2つです。

1.セル内の文字をファイル名にする方法は?
例えばA1セルに 1153 と入っていたら、ファイルの名前を付けて保存するとき、普通は Book1.xls となりますが、
これを 1153.xls とするにはどうしたらよいですか?

2.下のSheet1タブを2列にする方法は?
EXcelの下の方にシート切り替えがありますが、これを2列にするにはどうしたらよいですか?

Aベストアンサー

1は、前回の回答で間違いありませんが、もう少し詳しく処理方法を書きます。

(1)そのBookを開き、ツール→マクロ→新しいマクロの登録を選択。
(2)ダイアログボックスを確認、マクロ名(今回はMacro1のまま)を入力し、OK。
(3)そのBookを適当な名前(今回はBook1)で保存し、マクロの記録を終了。
(4)ツール→マクロ→マクロを選択、マクロ名を選択し、編集ボタンを押す。
すると、下記のようなモジュールが現れる。
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2006/8/29
'
ChDir "C:\Documents and Settings\管理者\保存するフォルダ○○"
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\管理者\保存するフォルダ○○\Book1.xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
End Sub

ので、Filename:=の後の " から .xls" までを Range("A1") & ".xls" と変更する。

2については済みません。解りません。

1は、前回の回答で間違いありませんが、もう少し詳しく処理方法を書きます。

(1)そのBookを開き、ツール→マクロ→新しいマクロの登録を選択。
(2)ダイアログボックスを確認、マクロ名(今回はMacro1のまま)を入力し、OK。
(3)そのBookを適当な名前(今回はBook1)で保存し、マクロの記録を終了。
(4)ツール→マクロ→マクロを選択、マクロ名を選択し、編集ボタンを押す。
すると、下記のようなモジュールが現れる。
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2...続きを読む


人気Q&Aランキング