
お世話になっています。
エクセルマクロ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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルのオートフィルターのしぼりをクリアーしたい 2 2022/12/24 08:36
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行して 作業フォルダの中にある PDFファイル名を 3 2023/07/01 15:16
- Excel(エクセル) vba あるブックから新たにブックを起動したときディスプレイ上で並べて表示 1 2023/08/08 08:39
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2022/08/04 13:56
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/16 14:36
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセル(複数インスタンス)より任意のWorkBookを取得したい
Visual Basic(VBA)
-
excelが別プロセスで起動してしまう
その他(Microsoft Office)
-
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
-
4
EXCEL VBAで2つEXCELを起動したときのブック名取得の方法
その他(Microsoft Office)
-
5
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
6
バックグラウンドのプロセスのエクセルを閉じる方法
Visual Basic(VBA)
-
7
VBAで別プロセスのExcelのフルパスの取得
Visual Basic(VBA)
-
8
インスタンスとは?
Excel(エクセル)
-
9
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
10
Application.Runエラー(1004)
Excel(エクセル)
-
11
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
12
ExcelVBA:すでに開かれているブックの判定方法
Visual Basic(VBA)
-
13
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
14
エクセル起動時別プロセスで開く
Visual Basic(VBA)
-
15
VBAで既に開いている別アプリケーションのオブジェクトを得る
Visual Basic(VBA)
-
16
ファイルを閉じたままの外部参照で最終行の行数取得
Visual Basic(VBA)
-
17
ExcelVBAにてアプリをタスクマネージャーから強制終了させたいのですが
Visual Basic(VBA)
-
18
Openイベントを開始させないでエクセルを開く方法を教えて下さい
Windows 10
-
19
プロセスIDの取得方法について
Visual Basic(VBA)
-
20
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
勤怠表について ABS、TEXT関数...
-
エクセルの関数について
-
Excelで4択問題を作成したい
-
エクセル
-
エクセルの表で作業してます。 ...
-
エクセル GROUPBY関数について...
-
エクセルの複雑なシフト表から...
-
【Officer360?Officer365?の...
-
エクセルについて
-
Amazonでマイクロソフトオフィ...
-
グループごとの人数のカウント
-
グループごとの人数のカウント
-
エクセルシートの見出しの文字...
-
グループごとの個数をカウント...
-
【マクロ】別ファイルへマクロ...
-
【マクロ】変数に入れるコード...
-
【マクロ】実行時エラー '424':...
-
ページが変なふうに切れる
-
9月17日でサービス終了らし...
-
エクセルのリストについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別インスタンスのエクセルを制...
-
突然カカオが使えなくなったん...
-
至急!インスタのリンクに、App...
-
インスタの裏垢で見せ合いした...
-
インスタって、携帯を2台で同期...
-
iPhoneでアルバムを一つのフォ...
-
グーグルフォトのフォルダにあ...
-
いつも行っている美容室で写真...
-
iPhoneのメモアプリなんですが...
-
最近写真とるの楽しいので、今...
-
CALayerをCALayerの無い所に発...
-
iPad Musicに音楽を入れたらア...
-
今ほんとに焦ってます誰か助け...
-
iPhoneです。 設定プライバシー...
-
アルバムがいくつかあって例え...
-
iPhone5 写真のフォルダ分けに...
-
iXpandからカメラロールへの動...
-
Excel 2013でマクロ実行中に他...
-
iphoneで写真を撮ると、撮影し...
-
i-phone で撮った写真
おすすめ情報