
お世話になっています。
エクセルマクロ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で保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
バックグラウンドのプロセスのエクセルを閉じる方法
Visual Basic(VBA)
-
5
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
6
VBAで別プロセスのExcelのフルパスの取得
Visual Basic(VBA)
-
7
EXCEL VBAで2つEXCELを起動したときのブック名取得の方法
その他(Microsoft Office)
-
8
インスタンスとは?
Excel(エクセル)
-
9
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
10
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
11
エクセル起動時別プロセスで開く
Visual Basic(VBA)
-
12
ExcelVBA:すでに開かれているブックの判定方法
Visual Basic(VBA)
-
13
Application.Runエラー(1004)
Excel(エクセル)
-
14
Access VBAから使用したExcelプロセスを閉じる方法について
Visual Basic(VBA)
-
15
「インスタンス」の意味をわかりやすく教えてください
Visual Basic(VBA)
-
16
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
17
ExcelVBAにてアプリをタスクマネージャーから強制終了させたいのですが
Visual Basic(VBA)
-
18
ファイルを閉じたままの外部参照で最終行の行数取得
Visual Basic(VBA)
-
19
VBA バックグラウンドで別ブックを開いてデータ転記
Excel(エクセル)
-
20
Openイベントを開始させないでエクセルを開く方法を教えて下さい
Windows 10
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
突然カカオが使えなくなったん...
-
別インスタンスのエクセルを制...
-
CALayerをCALayerの無い所に発...
-
iPhone5 写真のフォルダ分けに...
-
至急!インスタのリンクに、App...
-
おかっぱになってしまう
-
インスタって、携帯を2台で同期...
-
インスタ曲流そうとしたらこう...
-
インスタとTwitterをiPadと連携...
-
iPhone5s 写真の読み込み
-
今ほんとに焦ってます誰か助け...
-
インスタの裏垢で見せ合いした...
-
DVDに入っている写真をUSBに移...
-
DSi LLで撮った写真をPCに保存...
-
彼氏と愛犬と撮った写真…スノー...
-
Googleフォトで、写真の順番を ...
-
写真をiphoneからPCに移したいです
-
ジグソーパズルの出来るサイト
-
iPhoneの写真が撮影日順になら...
-
パソコンからF-51Bへ。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別インスタンスのエクセルを制...
-
インスタの裏垢で見せ合いした...
-
突然カカオが使えなくなったん...
-
インスタって、携帯を2台で同期...
-
至急!インスタのリンクに、App...
-
いつも行っている美容室で写真...
-
今ほんとに焦ってます誰か助け...
-
iXpandからカメラロールへの動...
-
グーグルフォトのフォルダにあ...
-
写真の一部を拡大したく、写真...
-
iPhoneでアルバムを一つのフォ...
-
銀座の美容院
-
iPhonのカメラの自動のオンオフ...
-
メンズで初めてパーマをかけよ...
-
インスタにアップしたい画像を...
-
ヘアアイロン
-
iPhone8なんですが、写真内にあ...
-
iPhoneでいらない部分をカットする
-
iPhoneのメモアプリなんですが...
-
おかっぱになってしまう
おすすめ情報