naritanです。

Excelのマクロ付きブックがあります。
このExcelを開くと、必ず、「既に起動しています。・・・」というメッセージが表示されてきます。

プロセスを見ても、Excel.exeは動いていません。

ご教授のほど、よろしくお願い致します。

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

A 回答 (1件)

マクロ付きブックということで、推測してみました。

新規ブックや他のブックは問題なく開ける?んですよね。

1.マクロのModuleにAuto_Openとかがあって、その中で自分を呼び出して(WorkbookOpen)いないでしょうか。
2.同様にマクロのThisWorkbookの中にWorkbook_Openとかが無いでしょうか。
3.Openと同時にメッセージを出すようになっていないか(あまりありえませんか)
4.クイック起動ツールバーに登録してあって、ダブルクリックしている(これもあまりありえませんかね)
    • good
    • 0

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

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

QExcel 読み取り専用で同じプロセス上で開きたい

MS Office2003を使用しています。
ネットワーク上のExcelファイルを何も考えずに開くと、ロックされてしまい、
他の人が編集できなくなってしまいます。
これを防ぐために、該当ファイルのショートカットを作成し、/rの起動スイッチで
読み取り専用にして開いたのですが、この方法だと新規プロセスになってしまいます。
読み取り専用で同じプロセスで開きたいのですが、何か方法はありますでしょうか。

以下の制約があるという前提でお願いします。
・対象のファイルには細工はしない
・ファイルの種類と編集による設定変更等は行わない

※右クリックして新規作成で開く、というやり方もありますが、コンテキストメニュー
が開くまでの手間がいやなので、この方法以外でお願いします。

自分でも調べてみて、いくつか試してみたのですがうまくいきませんでした。
何か方法があるのでしょうか。
宜しくお願いします。

Aベストアンサー

http://blogs.wankuma.com/yaju/archive/2007/04/22/72514.aspx

QACCESSのAutoKeysマクロでアクションの実行エラーが必ず出る

ACCESSのAutoKeysマクロでプロシージャを呼び出しているのですが、
そのVBAコードの中に、条件分岐を作っていて
その返り値がFalseの時だけ以降の処理を継続させようとしています。

ここでTrueの場合は警告メッセージを出した上で
処理を終えるためVBAでEndと記述しているのですが、
このTrueの際にアクションの実行エラーウィンドウが必ず出て
困っています。(格好悪い)

こちらを出ないようにするにはどうしたらいいでしょうか。
もしくはマクロ名で言うAutoKeysのような処理を、マクロを
使わずにVBAだけで記述・実行する方法はありますでしょうか?

長い質問になってしまいましたが、
ご存知のやさしい方ぜひ教えてください。
よろしくお願いします。

Aベストアンサー

VBA では、基本的に「End」は使用しません。
ランタイム環境では、End でエラーが発生します。
他にも、ヘルプに書かれていると思いますが
End はグローバル変数の初期化なども行われますので
以降の処理で、思わぬ結果になったりします。
「Exit Sub」 または 「Exit Function」で抜けるようにしてください。
これでもエラーが発生するようなら
原因は他にあるのでしょう。

QExcel2000マクロ_ブック名に一貫性が無くて既に開いている物の間のコピー等

何方か、回答をお願いします。
(A.xlsのAAAシート)(B.xlsのBBBシート)この2つ間のセル値をコピーしたい
のですが(共にブック名シート名に一貫性は無しで、既に開いています。)
マクロ付.xlsに下記のマクロを書いてA.xlsのAAAシートがアクティブの時にマクロを
実行してtwwにAAAシートをセット出来たのですが、Bk1にB.xlsのBBBシートをセット出来ません。
Application.Waitで止めている間にアクティブシートを変えようとしましたが駄目
Application.Dialogs(xlDialogWorkbookUnhide).Showでも駄目でした。
何方か、マクロ実行中のアクティブシート変更方法を教えて下さい。
又、この様なブック名に一貫性が無くて既に開いている物の間のコピー等はどの様に
するのか参考になる物が有れば教えて下さい。

Sub コピー()

Dim Bk1 As Worksheet
Dim tww As Worksheet

Set tww = ActiveWorkbook.Sheets(1)

'ここが分かりません

Set Bk1 = ActiveWorkbook.Sheets(1)

'-------1個目
tww.Range("D10").Value = Bk1.Range("H9").Value

Set Bk1 = Nothing: Set tww = Nothing

End Sub

何方か、回答をお願いします。
(A.xlsのAAAシート)(B.xlsのBBBシート)この2つ間のセル値をコピーしたい
のですが(共にブック名シート名に一貫性は無しで、既に開いています。)
マクロ付.xlsに下記のマクロを書いてA.xlsのAAAシートがアクティブの時にマクロを
実行してtwwにAAAシートをセット出来たのですが、Bk1にB.xlsのBBBシートをセット出来ません。
Application.Waitで止めている間にアクティブシートを変えようとしましたが駄目
Application.Dialogs(xlDialogWorkbookUnhide).Showでも駄目でし...続きを読む

Aベストアンサー

マクロ付.xlsの標準モジュールではなく、
ThisWorkbookのモジュールに
'=============================================================
Option Explicit
Private sht1 As Worksheet
Private WithEvents app As Application
Sub main()
  If ActiveSheet.Type = xlWorksheet Then
   Set app = Application
   Set sht1 = Application.ActiveSheet
   Application.StatusBar = "データをやり取りするシートをアクティブにしてください"
   End If
End Sub
'============================================================
Private Sub app_WorkbookActivate(ByVal Wb As Workbook)
  If Wb.Sheets(1).Type = xlWorksheet Then
   sht1.Cells(1, 1).Value = 1
   Wb.Sheets(1).Cells(2, 1).Value = sht1.Cells(1, 1).Value
   Application.StatusBar = False
   End If
  Set app = Nothing
End Sub

として、データ交換する最初のシートをアクティブにしてThisworkbook.mainを実行してください。

次に適当なブックをアクティブにしてください。
最初にアクティブになっていたシートのA1に1が設定され、
選択したブックの最左端シートのセルA2に
最初にアクティブになっていたシートのA1の値がコピーされます。

一例です。参考にしてください。

マクロ付.xlsの標準モジュールではなく、
ThisWorkbookのモジュールに
'=============================================================
Option Explicit
Private sht1 As Worksheet
Private WithEvents app As Application
Sub main()
  If ActiveSheet.Type = xlWorksheet Then
   Set app = Application
   Set sht1 = Application.ActiveSheet
   Application.StatusBar = "データをやり取りするシートをアクティブにしてください"
   End If
End Sub
'=========================...続きを読む

Q個人用マクロブックについて

ユーザー名 \AppData\Roaming\Microsoft\Excel\XLSTART のフォルダ内にある、PERSONAL.XLSB を開いた状態じゃないと、使用できなくなりました。
これでは、通常の各エクセルに保存しているマクロと同じです。。(むしろ、普段使用しないフォルダに入っているこのファイルを毎回開くほうが大変です。。

上記ファイルを開かないで、、
例えば、開発>マクロの記録 をクリックし、保存先を個人用マクロブックを選ぶと、
下記エラーが出ます。
" 起動フォルダにある個人用マクロブックは、記録のために開かれた状態でなければなりません。 "

上記ファイルを開かないで、、
例えば、開発のマクロを開くと、個人用マクロブックに保存したマクロは表示されません。

個人用マクロブックのお悩みによく出てくる、ヘルプ内の
使用できないアイテムも、念のためチェックしましたが、PERSONAL.XLSBの表示はありませんでした。

解決方法をご存知でしたら、教えてください。

どうぞ、よろしくお願いします。

Aベストアンサー

こんにちは。

エラーの再現性が取れませんが、

とりあえず、PERSONAL.XLSB をアクティブになっている状態で、表示--ウィンドウ・グループ--表示しないで、直接、みられなくなるはずです。

ただし、個人用マクロブックに、あれこれとマクロを詰め込むと、起動が遅くなりますので、必要でなかったら、個別のブックにマクロは登録するのがよいと思います。

QEXCELのマクロで外部データの取り込み

CSVファイルを「外部データの取り込み」でシートに読み込むマクロを自動記録で作成したのですが取り込むファイル名が毎回違うのでそのマクロを使うことができません。そこでファイルリストのダイアログからパスとファイル名を指定して実行できる様にしたいのです。良い方法が有りましたらご伝授をお願いします。
ちなみにCSVファイルはネットワークドライブ上にあります。

Aベストアンサー

ANo.1です。

どのようなマクロの自動記録が出来ているのか不明なので憶測です。

Dim F_name As Variant

F_name = Application.GetOpenFilename("CSV ファイル (*.csv),*.csv")

With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & F_name, Destination:=Range("A1")) '仮に貼り付けるセルをA1としています。
   .Name = Replace(Right$(F_name, Len(F_name) - InStrRev(F_name, "\")), ".csv", "")
'~以下については条件が不明~


人気Q&Aランキング

おすすめ情報