![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
現在開いているエクセルファイルをアクティブにしたいです。
バージョンは2003です。
アクセスVBAから
Sub test()
Dim rc As Long
rc = Shell("C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE", 1)
AppActivate "aaa.xls"
End Sub
を実行すると、
新規にアプリケーションが開いて、空のBOOK1が表示されます。
本当は、aaa.xlsをアクティブにしたいのですがうまく出来ません。
aaa.xlsは既に開いている状態です。
aaa.xlsはデスクトップにあります。
http://officetanaka.net/excel/vba/statement/AppA …
を見ながらやってみたのですがうまく出来ません。
新たなアプリケーションは立ち上げたくないけど
aaa.xlsはアクティブにしたいです。
No.3ベストアンサー
- 回答日時:
Win7 + Office2010 では下記のような感じで動きました。
aaa.xls を開いてなければ開き、
開いていたら、そのExcelアプリを最前面にして、
aaa.xls をアクティブにしてます。
こちらでは、aaa.xlsを単独で開いていた場合に、
AppActivateでは、プロシージャの呼び出し、または引数が不正です
になってしまいます。
環境に依存する部分が有りそうなので下記でも不十分かもしれません。
Sub てすと()
Dim myXL As Object
Dim myXLPath As String
Dim myXLName As String
Dim WSH As Object
Set WSH = CreateObject("WScript.Shell")
myXLPath = WSH.specialfolders("desktop")
myXLName = "aaa.xls"
If Dir(myXLPath & "\" & myXLName) = "" Then
MsgBox myXLPath & "\" & myXLName & " は見つかりません"
Set WSH = Nothing
Exit Sub
End If
Set myXL = GetObject(myXLPath & "\" & myXLName).Parent
myXL.Visible = True
If myXL.activeworkbook.Name = myXLName Then
myXL.workbooks(myXLName).Activate
Else
myXL.workbooks.Open (myXLPath & "\" & myXLName)
End If
myXL.UserControl = True
Set myXL = Nothing: Set WSH = Nothing
End Sub
No.2
- 回答日時:
すでに、aaa.xlsが開いているなら、質問のコードで、新しいExcelも開くが、aaa.xlsにフォーカスが移って、アクティブになっているはずです。
ただし、フォーカスは移るが、最前面には表示されない。aaa.xlsが開いていないなら、次のコードでaaa.xlsが開いてアクティブになり前面に表示されるでしょう。
rc = Shell("C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE C:\Users\(ユーザー名)\Desktop\aaa.xls", 1)
質問からすれば、
すでに、aaa.xlsが開いているのをアクティブにして前面に表示したいだけのようだから、ShellもAppActivateもいらないで、単に、
Windows("bbb.xls").Activate
でしょう。
No.1
- 回答日時:
>新規にアプリケーションが開いて、空のBOOK1が表示されます。
>本当は、aaa.xlsをアクティブにしたいのですがうまく出来ません。
>aaa.xlsは既に開いている状態です。
それでしたら、
Dim rc As Long
rc = Shell("C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE", 1)
は不要で、
Sub test()
AppActivate "aaa.xls"
End Sub
だけでよいはずですが。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。特にものすごく怒られたときとか、とんでもない損害を与えてしまったときとか…。
-
指定のWORKBOOKを前面表示する方法(エクセル:VBA)
Excel(エクセル)
-
VBAで既に開いている別アプリケーションのオブジェクトを得る
Visual Basic(VBA)
-
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
-
4
AppActivate関数について
Visual Basic(VBA)
-
5
vbaから他のアプリを終了
Visual Basic(VBA)
-
6
VBAでの SendKeysの変数指定方法
Excel(エクセル)
-
7
エクセルVBAでオートフィルター最上行を取得するには
Excel(エクセル)
-
8
エクセルから現在起動しているアクセスファイルをアクティブにしたい
Access(アクセス)
-
9
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
10
VBA: ブックをアクティベイトできない
Access(アクセス)
-
11
AppActivateについて
Visual Basic(VBA)
-
12
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
13
《エクセルVBA》「他の人が該当ファイルを使用中の場合」の処理
Excel(エクセル)
-
14
ExcelVBAにてアプリをタスクマネージャーから強制終了させたいのですが
Visual Basic(VBA)
-
15
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
16
メッセージボックスを前面に表示させるには?
Visual Basic(VBA)
-
17
Access フォームが前面に表示されない
その他(Microsoft Office)
-
18
ウィンドウを最前面にできません
Visual Basic(VBA)
-
19
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
20
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
AKB島崎遙香さんは なぜ「...
-
ExcelのVBAでGoToの代わりに…
-
AKBの篠田さんが大好きなの...
-
DHCPサーバの設定について
-
制服コレクション2003のメンバ...
-
西川貴教さんは絶倫と言う噂は...
-
私は現在30代後半の女です。 10...
-
なぜ純烈は、人が次々辞めるの...
-
世界に一つだけの花のメンバー...
-
女性2人男性1人のバンドの曲...
-
矢沢永吉のファンって。
-
顕正会 脱退 顕正会を脱退した...
-
ザローリングストーンズのキー...
-
スガシカオのファン層は?
-
この下記のGReeeeNのメンバーの...
-
「脱退」の反対語は何ですか?
-
BLANKEY JET CITY が影響を受...
-
『D&D』ってどうしたんでしょ...
-
五十嵐さんはELTの曲を作らない...
-
Reserve your smile(リザーブ ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelのVBAでGoToの代わりに…
-
AppActivateの使い方
-
AKBの巨乳メンバー
-
AKB島崎遙香さんは なぜ「...
-
AKB48は「一目でわかるモーニン...
-
KAT-TUNのリーダーって誰ですか?
-
AKB48はなぜ爆発的な人気を得た...
-
VBAのエラーについて
-
アルミ缶ジュースはさびにくいか
-
DHCPサーバの設定について
-
モーニング娘。
-
日置明子さん SONOさん が ...
-
モー娘。の年少組
-
AKB48大声ダイヤモンド 名前...
-
Apache mod_rewriteが .htacces...
-
AKB48って?
-
オートシェイプの位置
-
関数で整理する方法を教えてく...
-
AKBの薔薇の儀式について質問です
-
2000年へいこうの主張について
おすすめ情報