
お世話になっています。
エクセルマクロAでBとCのブックを制御したいのですが、
Office2016から Office365にアップした為できなくなりました。
どうすれば制御できるでしょうか。以下詳細です。
A:ブックBとCのセルに値を書く為、Bから起動したエクセルマクロです
B:最初に起動したエクセルブックとなります
C:Webサイトから起動したエクセルブックになります
Office2016の時は Application.Workbooks.count が3だったので、
A、B、Cどのセルにも値が代入できていましたが、
Office365だと2になります。
これを3にする為には、Cを終了。
AまたはBの『ファイル開く』から、Cを起動しなくてはいけません。
んなこと毎回するより、なんらかの方法でCのインスタンスを取得して解決したいのです。
タスクマネージャーで見ると、問題の場合はAB、とCでエクセルが2個。
Cを開きなおした場合は、エクセルが1個になっています。
つまり別インスタンスとなっているCはAから制御できないとなります。
CreateObject("Excel.Application") は使えそうになく、
GetObject(, "Excel.Application")
で取得もうまく行きませんでした。
保存されるCのファイル名の法則性はあると言えばあるのですが、
Open("Cのフルパス") とするのも味気なく、
もっと良い方法でCのインスタンスを取得してCを制御したいのです。
教えて下さい。よろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんばんは
回答が付いていないので 少しだけ
>もっと良い方法
ご質問にある様な方法が比較的良い方法と存じます
すでに出ているような方法以外ですと WindowsAPIで起動Excelを取得して
条件によりターゲットブックを特定し処理すれば出来ますが・・
それなりの処理コードが必要になると思いますね
WindowsAPIを使いますか?
参考(Excelの説明がありましたのでこちらを)
https://www.excel-chunchun.com/entry/enumwindows …
添削例
Sub Test01_ExecExcelWorkbooks()
Dim wb As Variant
Dim sht As Worksheet
For Each wb In ExecExcelWorkbooks()
On Error Resume Next
wb.Activate
Set sht = wb.ActiveSheet
If wb.Name = "CBook.xlsx" Then
sht.Range("A1").Value = "QA"
Exit For
End If
Next
End Sub
WindowsAPIはバリバリ使いこなしています。
ホームページを拝見すると正に答えのような気がします。
実際に試してみます。まずはお礼にて。真にありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセル(複数インスタンス)より任意のWorkBookを取得したい
Visual Basic(VBA)
-
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
excelが別プロセスで起動してしまう
その他(Microsoft Office)
-
-
4
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
5
EXCEL VBAで2つEXCELを起動したときのブック名取得の方法
その他(Microsoft Office)
-
6
バックグラウンドのプロセスのエクセルを閉じる方法
Visual Basic(VBA)
-
7
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
8
ExcelVBA:すでに開かれているブックの判定方法
Visual Basic(VBA)
-
9
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
10
VBAで別プロセスのExcelのフルパスの取得
Visual Basic(VBA)
-
11
インスタンスとは?
Excel(エクセル)
-
12
エクセル起動時別プロセスで開く
Visual Basic(VBA)
-
13
VBAで既に開いている別アプリケーションのオブジェクトを得る
Visual Basic(VBA)
-
14
プロセスIDの取得方法について
Visual Basic(VBA)
-
15
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
16
ExcelVBAにてアプリをタスクマネージャーから強制終了させたいのですが
Visual Basic(VBA)
-
17
Openイベントを開始させないでエクセルを開く方法を教えて下さい
Windows 10
-
18
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
19
Application.Runエラー(1004)
Excel(エクセル)
-
20
Excel VBAで他アプリケーションの文字列取得
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの複雑なシフト表から...
-
エクセルの関数について
-
【マクロ】実行時エラー '424':...
-
【マクロ】変数に入れるコード...
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
【マクロ】【配列】3つのシー...
-
【マクロ】元データと同じお客...
-
Office2021のエクセルで米国株...
-
【マクロ】左のブックと右のブ...
-
【画像あり】オートフィルター...
-
他のシートの検索
-
エクセルのVBAで集計をしたい
-
vba テキストボックスとリフト...
-
【関数】3つのセルの中で最新...
-
【マクロ】excelファイルを開く...
-
エクセルシートの見出しの文字...
-
LibreOffice Clalc(またはエク...
-
【マクロ】別ファイルへマクロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別インスタンスのエクセルを制...
-
突然カカオが使えなくなったん...
-
インスタって、携帯を2台で同期...
-
インスタの裏垢で見せ合いした...
-
至急!インスタのリンクに、App...
-
いつも行っている美容室で写真...
-
EXCEL VBA Applicationインスタ...
-
スタイリストさん
-
iXpandからカメラロールへの動...
-
iphonenのネットの速度について
-
グーグルフォトのフォルダにあ...
-
Instagramのアカウントの消し方...
-
LINEのアルバムの中に、一眼レ...
-
picasaの使い方がわかりません!
-
スマホの位置情報について
-
スタイリストの技量について
-
iPhoneでアルバムを一つのフォ...
-
インスタでこれを見たのですが...
-
iPhoneにグーグルフォトを入れ...
-
Excel 2013でマクロ実行中に他...
おすすめ情報