お世話になっています。
エクセルマクロ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)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
EXCEL VBAで2つEXCELを起動したときのブック名取得の方法
その他(Microsoft Office)
-
-
4
バックグラウンドのプロセスのエクセルを閉じる方法
Visual Basic(VBA)
-
5
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
6
excelが別プロセスで起動してしまう
その他(Microsoft Office)
-
7
VBAで別プロセスのExcelのフルパスの取得
Visual Basic(VBA)
-
8
ExcelVBA:すでに開かれているブックの判定方法
Visual Basic(VBA)
-
9
VBAで既に開いている別アプリケーションのオブジェクトを得る
Visual Basic(VBA)
-
10
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
11
インスタンスとは?
Excel(エクセル)
-
12
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
13
ExcelVBAにてアプリをタスクマネージャーから強制終了させたいのですが
Visual Basic(VBA)
-
14
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
15
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
16
VBAでワークシートを引数としてサンプル関数に渡したい
Visual Basic(VBA)
-
17
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
18
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
19
vbaから他のアプリを終了
Visual Basic(VBA)
-
20
WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別インスタンスのエクセルを制...
-
インスタって、携帯を2台で同期...
-
至急!インスタのリンクに、App...
-
Excel 2013でマクロ実行中に他...
-
iPhoneでアルバムを一つのフォ...
-
インスタの名前を変えようとす...
-
iPhone5s 写真の読み込み
-
Googleフォトのアプリを iPhone...
-
iPhoneでいらない部分をカットする
-
いつも行っている美容室で写真...
-
iPhoneのメモアプリなんですが...
-
アイホンが壊れてデータが完璧...
-
いい買い方知りませんか?
-
この方のお名前わかる人います...
-
26時間テレビの女性陣のTシャツ...
-
突然カカオが使えなくなったん...
-
>をタップしても、「写真また...
-
だいぶ前に、安室奈美恵のアル...
-
インスタの裏垢で見せ合いした...
-
グーグルフォトのフォルダにあ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
インスタの裏垢で見せ合いした...
-
インスタって、携帯を2台で同期...
-
別インスタンスのエクセルを制...
-
至急!インスタのリンクに、App...
-
iPhoneでアルバムを一つのフォ...
-
iXpandからカメラロールへの動...
-
突然カカオが使えなくなったん...
-
iPhoneのメモアプリなんですが...
-
今ほんとに焦ってます誰か助け...
-
いつも行っている美容室で写真...
-
Googleフォトのアプリを iPhone...
-
写真の一部を拡大したく、写真...
-
Excel 2013でマクロ実行中に他...
-
LINEのアルバムの中に、一眼レ...
-
アルバムがいくつかあって例え...
-
iPhoneでいらない部分をカットする
-
iPhone8なんですが、写真内にあ...
-
オフライン状態で、パソコンのi...
-
iPhoneです。 設定プライバシー...
-
なんかもう萎えます。 その別れ...
おすすめ情報