- 締切済み
Excelマクロをボタンにすると実行に失敗します。
Excelマクロをボタンにすると実行に失敗します。 WindowsXP・Excel2003です。 共有フォルダがあり、同ディレクトリに以下の2つのファイルを置いています。 [○×商社]報告書(計算用).xls [○×商社]報告書.xls [○×商社]報告書(計算用).xlsには大量の関数が入っており、マクロで [○×商社]報告書.xlsの方に全シートを値貼りをするようにしています。 そのマクロなのですが、Alt+F8から実行するときは普通に動作しますが、 ボタンを設置して割り当てて実行をすると、 '○×商社.xls'が見つかりません。ファイル名およびファイルの保存場所が正しいかどうか確認してください。 [ファイル]メニューの最新使用したファイルの一覧からファイルを開こうとしている場合は、 そのファイルの名前が変更されていないこと、移動または削除されていないことを確認してください。 というメッセージが表示され、「OK」をクリックすると続けて、 '○×商社.htm'が見つかりません。ファイル名およびファイルの保存場所が正しいかどうか確認してください。 [ファイル]メニューの最新使用したファイルの一覧からファイルを開こうとしている場合は、 そのファイルの名前が変更されていないこと、移動または削除されていないことを確認してください。 というメッセージが表示され、上手くいきません。 ネットで色々検索しましたが同様の現象は見つからず、 カレントフォルダの変更など色々試しましたが自力では解決できませんでした。 当然、マクロ内に'○×商社.xls'や'○×商社.htm'は指定していませんし、 そもそも共有フォルダ内にそのようなファイルは元からありません。 原因がわかる方、解決方法をご教示いただけませんでしょうか。困っています。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- sekkii
- ベストアンサー率50% (13/26)
私の少ない知識で考えて… For Each wb In Workbooks If wb.Name = "(○×商店)集計.xls" Then wb.Activate Exit For End If Next の部分なんですが、上のコードは 「開いているファイルの中に"(○×商店)集計.xls"が あったら"(○×商店)集計.xls"をアクティブにする」 という命令だと思うので、もしかして"(○×商店)集計.xls"が 開いてないのかな?と。 ファイルが無かったら開く処理を入れてみたらどうでしょう? お役に立てたかな?違ってたらごめんなさい。
- sekkii
- ベストアンサー率50% (13/26)
私では解決できないかもしれませんが、 よろしければコードを見せていただけませんか?
補足
>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