- ベストアンサー
エクセル2007でのApplication.Run実行時エラーと解決方法
- エクセル2007でApplication.Runを使って他のブックの関数を使用しようとしたところ、実行時エラーが発生しました。
- エクセル2007では、ブックを開くとマクロが自動的に無効になるため、マクロを有効にする方法を試しましたが解決しませんでした。
- エクセル2007でのApplication.Runの実行方法について、他のブックを開いて処理を行う方法が分かりません。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- エクセルVBA 「Application.Run」について
職場のエクセルファイルに以下のようなコードがあります。 これはブック内の○○というマクロを実行するという意味でしょうか? (実際は~~部分に多くのコードがあり、上記のことが正しいのかよくわかりません) Sub test() ~~ Application.Run "ThisWorkbook.○○" ~~ End Sub 以上、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excelのブックを閉じる
お世話になります。 Excel処理について質問です。 今、サーバで常にマクロが動き続けているExcelファイル(ファイルAとします)があります。 今回はそのファイルを閉じ、マクロにてシートの更新をしたのち、また開きなおしてマクロを実行させたいです。 方法としては、 1.C#から閉じて更新して開く処理を行う。 2.別のブックにファイルAを閉じる処理を行うマクロを仕込んでおき、 C#からはそのファイルを開くだけ。 が考えられると思っています。 どちらの方法でも良いので、コードの例を書いていただけないでしょうか。 ちなみに、自分の現状のコードは以下です。 (アラート非表示) for each wb in Workbooks if wb.Name <> ThisWorkbook.Name then wb.Close SaveChanges:=false end if next Application ThisWorkbook.Close SaveChanges:=false これでは、異なるブックのExcelファイルであっても、ウィンドウが分かれ てしまっていては、削除の対象になりません。 どなたか、宜しくお願いします。
- ベストアンサー
- Excel(エクセル)
- エクセル-別のbookで同様のマクロ実行
エクセル-別のbookで同様のマクロ実行 最初あるBook1に入っているmacro1はそのbook1のsheet1を処理するように作成しました。 次にBook1を開いたまま、Book2を開きそのsheet1に対してmacro1と同等の機能を実行したい場合は通常どうするのでしょうか。 (1) Book2にBook1のマクロをコピー (2) book2のマクロを開き、表示されるBOOK1 macro1を実行する。 (2) 場合でもうまくいくのでしょうか。Sheet1に対してやりたいことの論理は同じとします。試してみたらといわれそうですが、まず識者の説明をお聞きしたいのです。
- ベストアンサー
- オフィス系ソフト
- Book間でのコピー
エクセルで以下の処理を実行するマクロを知りたいのですが。 Book1とBook2が開いています。 Book2のSheet1のA1~A10を、Book2のSheet1のA1~A10にコピーします。 この処理を任意の2つのBook間で実行するためにはどんなマクロになるでしょうか。(Book3とBook5で行ったり、Book25とBook46で行ったり等) アクティブになってないBookからアクティブになっているBookにコピーするようにしたいのですが。 宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- ExcelVBAで他ブックのマクロを動かす
Aというブックのマクロを動かし、別ブックのコマンドボタンに埋め込まれているマクロの動作を行いたいのですがうまく行きません。 下記がコードになります。 Option Explicit Public strName As String Public strPath As String Public xlApp As Object Public xlBook As Object Public xlSheet As Object Public Function テスト処理() 'ファイル名 strName = Worksheets("名前").Range("B2") 'ファイルを置いている場所 strPath = Worksheets("名前").Range("B3") Set xlApp = CreateObject("Excel.Application") '別Excelを開く Set xlBook = xlApp.Workbooks.Open(strPath, True) 'シートの選択 Set xlSheet = xlBook.Worksheets("操作画面") xlApp.Visible = True xlApp.UserControl = True xlSheet.Activate setブック処理 End Function Public Sub setブック処理() '別ブックのマクロを動かす Application.Run (strName & "!CmdClick"), ThisWorkbook End Sub 上記のマクロを動かすと、Application.Runの部分で下記エラーが表示されます。 実行時エラー1004 '別ブック.xls'が見付かりません。ファイル名及びファイルの保存場所が正しいかどうか確認してください。 setで飛ぶ前に別のブックは開けているので、ファイル名や保存場所は正しいと思うのですがエラーが出てしまいます。 宣言の仕方が間違っているのでしょうか? ちなみに、別ブックのコマンドボタンのマクロは下記の名称なので、マクロ名の間違いという事も無いと思います。 Private Sub CmdClick() ~処理~ End Sub
- ベストアンサー
- Excel(エクセル)
- ブックを作成するマクロ
エクセルで、以下のマクロを実行すると新規のブックを作成します。 Workbooks.Add この時のブック名はBook1になりますが、任意のブック名を指定するにはどうすればいいでしょうか?
- ベストアンサー
- オフィス系ソフト
- Application.Run実行時にエラー
Excelファイルのマクロで、デスクトップ上の別ファイル「test.xlsm」のマクロ「Macro2」を実行させるため、以下のマクロを作成し実行したところ、 以下のエラーメッセージが出て正常動作できませんでした。 何が原因でしょうか? なお、Macro2は単独で実行した場合は正しく動作しています。 よろしくお願いします。 [作成したマクロ] Sub Macro1() Application.Run "C:¥Users¥****¥Desktop¥test.xlsm!Macro2" End Sub [エラーメッセージの内容] 実行時エラー’1004’ マクロ"C:¥Users¥****¥Desktop¥test.xlsm!Macro2"を実行できません。このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。
- ベストアンサー
- Excel(エクセル)
- 他ブックを実行するマクロ
あるexcelファイル(ブック名「自動操作.xlsm」)からべつのexcelファイル(ブック名「a.xlsm」)というファイルを実行するマクロを組んでいます。 Application.Runを用いて「自動操作.xlsm」のコードを以下のように記述しました。 ※「\」は半角の円マークだと考えてくれればいいです。ここで半角の円マークをかいても\と表示されます。また、自動操作とaは同じディレクトリにあります。 Sub Test1() Application.Run "'C:Users\ディレクトリ名\a.xlsm'!test" End Sub また、「a.xlsm」は以下のように記述しました。 Sub test() Dim i As Integer For i = 1 To 5 '移動元ファイルパスの設定 Cells(i, 1) = i Next End Sub ただ1~5行にその行数を記入するマクロです。 a.xlsmを開いた状態でこれを実行すると、「アプリケーション定義またはオブジェクト定義のエラーです」とでます。 a.xlsmを閉じた状態で実行すると、「このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります」とでます。 いったいなにを間違えているのでしょうか。
- 締切済み
- Visual Basic
- マクロ実行後エクセルを閉じたい
2つの別々のファイルを開いて片方からもう片方にコピーして 保存して終了する。(両方とも閉じる) というマクロを作ったのですが コピー終了後に実行したマクロ付きのエクセルも閉じてデスクトップ上には何も開いていない状態にしたいのですがworkbookのところに 下記の命令を記述してもうまくいきません。 Application.Run "XXXXXX" ThisWorkbook.Save ThisWorkbook.Saved = True If Workbooks.Count <= 1 Then Application.Quit ThisWorkbook.Close False マクロ付きのエクセルも一旦は閉じるのですがその後に 別の白紙のブックが開いてしまうのです。 続けて他のマクロをスケジュールで実行したいのですが実行時に 「既にエクセルが開いています」みたいな警告が表示され 実行できません。 エクセルを完全に閉じるようにするにはどうしたらいいのでしょうか?
- ベストアンサー
- オフィス系ソフト
- エクセルのブックを閉じるマクロについて
エクセルのブックAとブックBが開いている状態で、 ブックAのボタンに登録して実行すると、ブックAのみ閉じる、 というマクロを作りました。(下部にコードを記載します) このマクロは、2つのブックが開いていると正常に稼働するのですが、 ブックが1つしかない場合、実行時エラーが出てしまいます。 (ブックAのみ開いた状態でこのボタンを押してもエラーなく閉じたい) 実行時エラーが出ないようにするにはどうすれば良いか、 おわかりの方がいらっしゃいましたら教えて下さい。 どうぞよろしくお願い致します。 Sub このブックのみ閉じる() Dim wa As String wa = "ほかに無い" Dim wb As Workbook For Each wb In Workbooks If wb.Name <> ThisWorkbook.Name Then wa = "ほかにあるよ" End If Next If wa = "ほかに無い" Then Application.DisplayAlerts = False Application.Quit '終了予定 End If Range("D2").Select Selection.ClearContents ThisWorkbook.Close SaveChanges:=False End Sub
- ベストアンサー
- Excel(エクセル)
- マイナポイントで2万円相当のポイントを手に入れる方法がわからない方へ
- マイナポータルアプリの銀行口座紐づけ作業についての問題解決方法
- 年収300万以下の方にとってマイナポイントは重要な要素ですが、アプリの障害で手続きが進まない方へのアドバイス
お礼
説明用にサンプルプログラムを作ろうとおもったら、ソチラでは動きました。 メインのプログラムがなぜ実行時エラーが出るのかはわからないままですが、確かにおっしゃる通りエクセル2007が問題ではないようです。 とりあえず、Application.Run を使わず、次のBOOKのオープンイベントで処理を開始するようにして 対応しました。 なお、xls形式を使っている理由はファイルを配布するからです。エクセル2007形式では読み取り出来ない方も居られますので。 ご回答ありがとうございました。