
現在エクセルとアクセスを開いています。
エクセルマクロで現在開いているアクセスをアクティブにしたいのですがうまくいきません。
Sub アクセスをアクティブにする()
Dim app As Object
Set app = CreateObject("Access.Application")
app.Application.Visible = True
app.Visible = True
End Sub
これを実行すると新たに空のアクセスアプリケーションが開きます。
(app.Application.Visible = True)を抜いても同じです。
現在起動中のアクセスファイル(○○○.mdb)をエクセルからアクティブにするにはどうすればいいのでしょうか?
ご教授よろしくお願いします。
No.3ベストアンサー
- 回答日時:
おじゃまします。
アクティブ=前面へ という意味合いでしょうか。
違っていたらごめんなさい。スルーしてください。
Win32 APIを使用した例となります。
参考程度にしてください。
ExcelのVBAは詳しくないので、以下の処理を貼り付けたシートが変更されるたびに前面に持ってくる(アクティブ?)処理をするものになります。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim objAcc As Object
On Error Resume Next
Set objAcc = GetObject(, "Access.Application")
If (Not objAcc Is Nothing) Then
Call appShowWindow(objAcc.hWndAccessApp)
Set objAcc = Nothing
End If
End Sub
その前に、以下のものを標準モジュールに張り付けておきます。
' ---------- ここからを標準モジュールに貼り付け
Const SW_SHOWMINIMIZED = 2
Const SW_RESTORE = 9
Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" _
(ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
Public Sub appShowWindow(hWnd As Long)
Call apiShowWindow(hWnd, SW_SHOWMINIMIZED)
Call apiShowWindow(hWnd, SW_RESTORE)
End Sub
' ---------- ここまで
※ 関数名の命名は私流です。
API 関数は、関数名先頭に api を付けています。
※ app で始まる関数は独自関数なので、適宜名前等変更してください。
※ ShowWindow の第2引数については、以下に詳しく載ってました。
http://yokohama.cool.ne.jp/chokuto/urawaza/api/S …
※※ ShowWindow で アクティブ化 のみでは前面に出てこなかったので、1度最小化してから戻してます。(これでいいのかは?)
※※ VBE画面からの実行では、前面にはこなかった。
No.2
- 回答日時:
「現在開いているアクセス」ということは
それは見えているんですよね?
可視にするコードは不要では?
Sub アクセスをアクティブにする()
Dim app As Object
Set app = GetObject(, "Access.Application")
'app.Application.Visible = True
'app.Visible = True
End Sub
何度もすいません。
エクセルもアクセスも起動していて
エクセルがアクティブな時に
アクセスをアクティブにしてEnd Subで終わる方法が知りたいです。
このコードも実行してみましたが何も変わりませんでした。
No.1
- 回答日時:
Set app = GetObject(, "Access.Application")
早速のご回答ありがとうございます。
こういうことでしょうか?
Sub アクセスをアクティブにする()
Dim app As Object
Set app = GetObject(, "Access.Application")
app.Application.Visible = True
app.Visible = True
End Sub
ただこれだと
「指定した式に、Visibleプロパティに対する正しくない参照が含まれます。」
どうすればいいのでしょうか?
再度よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
エクセルVBAでアクセスファイルを開く方法
Access(アクセス)
-
Access 複数フォームを開き、画面の最上面にしたいフォームをコント
その他(データベース)
-
-
4
AppActivate関数について
Visual Basic(VBA)
-
5
Excel VBAからAccessマクロを実行したい
Visual Basic(VBA)
-
6
ExcelのマクロでAccessのmdbを起動したい
Excel(エクセル)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
Access VBAから使用したExcelプロセスを閉じる方法について
Visual Basic(VBA)
-
9
Accessでフォームから別フォームのテキストボックスの値を設定する
Visual Basic(VBA)
-
10
VBAで既に開いている別アプリケーションのオブジェクトを得る
Visual Basic(VBA)
-
11
フォームウィンドウを最前面に表示したい(ACCESS)
Microsoft ASP
-
12
エクセルVBAからアクセスフォームについて
Access(アクセス)
-
13
vbaで「最前面に」とする方法は?
Access(アクセス)
-
14
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
15
起動中のアプリ、ソフトの取得
Visual Basic(VBA)
-
16
Accessにインポートしたら並び順が変わっちゃった
Access(アクセス)
-
17
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
18
ACCESS──メインフォームでサブフォームのレコード件数をカウントしたい
Access(アクセス)
-
19
Accessのレポート上のテキストボックス値を設定したい
その他(データベース)
-
20
ACCESS アクセスで他のデータベースからのデータインポート
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HDAをMP3に変換
-
平日朝6時台の環八の混雑具合を...
-
エクセルではIF関数なのにアク...
-
群馬から千葉南房総まで首都近...
-
諏訪市から軽井沢に車で行くの...
-
高速道路を降りずに友人を拾う...
-
山梨県甲府市から石川県金沢市...
-
目印を付ける事が出来るインタ...
-
ネットカフェでUSBを使用し、そ...
-
山梨県にある巨大迷路
-
埼玉近郊で超初心者にもオスス...
-
北陸自動車道と中央自動車道は...
-
甲州街道の渋滞について
-
環七の日曜夕方の混雑状況
-
環七の渋滞状況
-
群馬県 前橋 17号→50号の...
-
大人の家族旅行。いいところあ...
-
広島市内からしまねアクアスに...
-
東京駅~TDLまでタクシー利用!
-
栃木の宇都宮から千葉の木更津...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HDAをMP3に変換
-
高速道路を降りずに友人を拾う...
-
諏訪市から軽井沢に車で行くの...
-
ネットカフェでUSBを使用し、そ...
-
Iphoneのアクセスガイド中に着...
-
通勤経路の変更について
-
エクセルではIF関数なのにアク...
-
環八から中央道への入り口
-
愛知から青森までドライブした...
-
平日朝の246の渋滞について
-
長野県 善光寺から草津温泉...
-
平日朝6時台の環八の混雑具合を...
-
東京から万座温泉に行くのに...
-
環七の渋滞状況
-
高速道路の途中で人と待ち合わ...
-
渋滞時、携帯トイレとおむつど...
-
群馬県の伊香保から軽井沢
-
日光東照宮から伊香保への移動
-
羽田空港へのリムジンバス
-
環八はなぜ混む?
おすすめ情報