• 締切
  • すぐに回答を!

Excelマクロをボタンにすると実行に失敗します。

  • 質問No.5766009
  • 閲覧数971
  • ありがとう数1
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 64% (33/51)

Excelマクロをボタンにすると実行に失敗します。

WindowsXP・Excel2003です。

共有フォルダがあり、同ディレクトリに以下の2つのファイルを置いています。
[○×商社]報告書(計算用).xls
[○×商社]報告書.xls

[○×商社]報告書(計算用).xlsには大量の関数が入っており、マクロで
[○×商社]報告書.xlsの方に全シートを値貼りをするようにしています。

そのマクロなのですが、Alt+F8から実行するときは普通に動作しますが、
ボタンを設置して割り当てて実行をすると、

'○×商社.xls'が見つかりません。ファイル名およびファイルの保存場所が正しいかどうか確認してください。
[ファイル]メニューの最新使用したファイルの一覧からファイルを開こうとしている場合は、
そのファイルの名前が変更されていないこと、移動または削除されていないことを確認してください。

というメッセージが表示され、「OK」をクリックすると続けて、

'○×商社.htm'が見つかりません。ファイル名およびファイルの保存場所が正しいかどうか確認してください。
[ファイル]メニューの最新使用したファイルの一覧からファイルを開こうとしている場合は、
そのファイルの名前が変更されていないこと、移動または削除されていないことを確認してください。

というメッセージが表示され、上手くいきません。

ネットで色々検索しましたが同様の現象は見つからず、
カレントフォルダの変更など色々試しましたが自力では解決できませんでした。
当然、マクロ内に'○×商社.xls'や'○×商社.htm'は指定していませんし、
そもそも共有フォルダ内にそのようなファイルは元からありません。

原因がわかる方、解決方法をご教示いただけませんでしょうか。困っています。

回答 (全2件)

  • 回答No.2

ベストアンサー率 50% (13/26)

私の少ない知識で考えて…

For Each wb In Workbooks
 If wb.Name = "(○×商店)集計.xls" Then
  wb.Activate
  Exit For
 End If
Next

の部分なんですが、上のコードは
「開いているファイルの中に"(○×商店)集計.xls"が
 あったら"(○×商店)集計.xls"をアクティブにする」
という命令だと思うので、もしかして"(○×商店)集計.xls"が
開いてないのかな?と。
ファイルが無かったら開く処理を入れてみたらどうでしょう?

お役に立てたかな?違ってたらごめんなさい。
  • 回答No.1

ベストアンサー率 50% (13/26)

私では解決できないかもしれませんが、
よろしければコードを見せていただけませんか?
補足コメント
aloe_bear

お礼率 64% (33/51)

>sekkii様

ありがとうございます。
コードを貼ってみます。

Sub 報告更新()
Dim wb As Workbook
For Each wb In Workbooks
If wb.Name = "(○×商店)集計.xls" Then
wb.Activate
Exit For
End If
Next
If ActiveWorkbook.Name <> "(○×商店)集計.xls" Then
Workbooks.Open "\\xxx.xxx.xxx.xxx\folder\【○×商店 】関連\報告\集計\[○×商店]集計.xls"
End If
Windows("(○×商店)集計(計算用).xls").Activate
Sheets("日次シート").Select
Range("E2:AJ37").Select
Selection.Copy
Windows("(○×商店)集計.xls").Activate
Sheets("日次シート").Select
Range("E2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=True, Transpose:=False
Range("G13").Select
Windows("(○×商店)集計(計算用).xls").Activate
Sheets("月次シート").Select
Range("E2:L37").Select
Application.CutCopyMode = False
Selection.Copy
Windows("(○×商店)集計.xls").Activate
Sheets("月次シート").Select
Range("E2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=True, Transpose:=False
Range("G18").Select
Windows("(○×商店)集計(計算用).xls").Activate
Sheets("支店シート").Select
Range("C3:BJ595").Select
Application.CutCopyMode = False
Selection.Copy
Windows("(○×商店)集計.xls").Activate
Sheets("支店シート").Select
Range("C3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=True, Transpose:=False
Sheets("日次シート").Select
Range("A1").Select
ActiveWorkbook.Save
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub
投稿日時:2010/03/25 14:02
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ