
現在開いているエクセルファイルをアクティブにしたいです。
バージョンは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も見ています
-
みんなに挑戦してほしい「色彩検定」
これまで多くの方々が受検したが「色彩検定」。その目的や活用法は人それぞれ。今回は、色彩検定に影響を受けた男女3名にインタビュー。
-
指定のWORKBOOKを前面表示する方法(エクセル:VBA)
Excel(エクセル)
-
エクセルVBAのフォームを最前面にする方法を教えてください。
Visual Basic(VBA)
-
vbaから他のアプリを終了
Visual Basic(VBA)
-
4
Excel VBA:フォーム←→セルのアクティブ切り替え
Excel(エクセル)
-
5
VBAにてメッセージボックスを最前面に表示させる
その他(プログラミング・Web制作)
-
6
AppActivate関数について
Visual Basic(VBA)
-
7
VBSで起動したアプリが前面表示しない
Visual Basic(VBA)
-
8
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
9
VBAで既に開いている別アプリケーションのオブジェクトを得る
Visual Basic(VBA)
-
10
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
11
VBAでこんなことできますか?
PowerPoint(パワーポイント)
-
12
AppActivateについて
Visual Basic(VBA)
-
13
VBAでのタイトルバーの取得
Visual Basic(VBA)
-
14
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
15
指定したフォルダーを最前面表示にする方法
Visual Basic(VBA)
-
16
ExcelVBAにて既に開かれているPowerpointをアクティブにするには?
Excel(エクセル)
-
17
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
18
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
19
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
20
フォームウィンドウを最前面に表示したい(ACCESS)
Microsoft ASP
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
AKB48メンバーの名前を教えて下...
-
5
アルミ缶ジュースはさびにくいか
-
6
今年のAKB48総選挙について
-
7
AppActivateの使い方
-
8
AKB48はなぜ爆発的な人気を得た...
-
9
第63回紅白SKE48ダジャレ場面...
-
10
山本彩ちゃんのグッズはどこで...
-
11
AKBの新ユニット「DiVA」の名称...
-
12
AKB48大声ダイヤモンド 名前...
-
13
マジックプリンスの西岡健吾く...
-
14
ExcelのVBAでGoToの代わりに…
-
15
AKB島崎遙香さんは なぜ「...
-
16
私立エビ中ってなんなの? 10代...
-
17
Spotifyのファンの間で人気で出...
-
18
なんで組合に入ってない美容院...
-
19
ポルノグラフティーの3人目は...
-
20
ジェイル大橋の脱退理由 ~聖...
おすすめ情報
公式facebook
公式twitter