[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『埋め込みファイル(EMBED)を開くときに、ウィンドウ表示を最大化したい』(ととろいも)
「挿入→オブジェクト→ファイルから」を使って、
別のExeclファイルを埋め込んだ場合、
ダブルクリックで埋め込みを開くと、
表示ウィンドウが「必ずマルチウィンドウ表示」に切り替わってしまいます。
これを必ず「必ず最大化表示」で開く方法はないでしょうか?
< 使用 Excel:Excel2010、使用 OS:Windows7 >
貼り付けた内容が変化しなくても良ければ、普通のボタン等にして、別ブックを開く
マクロで実現できますが、どうしてもOLE貼り付けでないと駄目ですかね?
(???) 2014/01/06(月) 16:46
Private Sub CommandButton1_Click() Workbooks.Open "Book1.xlsx" End Sub (???) 2014/01/07(火) 08:41
Excelはそういう仕様で作ったのだろうと思います。APIを使ってメッセージを送れば、
最大化復活は不可能ではないように思うのですが、Excelの子ウィンドウハンドラの
情報を得るのは、かなり難しいでしょう。
OLE貼り付けに拘るなら、最大化解除を受け入れるしかないと思います。
(???) 2014/01/07(火) 17:38
今回の要望のそもそもの理由は
「OLEファイルを開く → 最大化解除 → OLEファイルが別ウインドウが表示 → このOLEウインドウがExcelのMDIエリア外で出てしまう → OLEファイルが見られない、と勘違いされる」
のを回避したかったというものです。
「表示 → 整列」で見つけられるんですが、その操作を知らない人が多いので。
OLEに拘る理由は「リンク貼り付けだと、常にリンク切れの可能性がある」ためです。
最大化解除は受け入れようと思います。
(ととろいも) 2014/01/07(火) 20:41
必ず最大化解除されるので、元のファイルを単体で開き、最大化解除した状態で
保存しておくとどうなるでしょうか?(再度、OLE貼り付けし直しが必要かも)
(???) 2014/01/08(水) 08:49
検証不足&環境依存っぽい&明示的じゃないやり方、なのでちょっと微妙ですが。
ちなみに、当方も「編集はマルチモニタ、観覧はシングルモニタ」です。
<<位置決めのやり方>>
1.編集側(マルチモニタ側)でExcel本体ウィンドウを最大化する。
※複数モニタにまたがるような最大化解除表示はNG。1つのモニタに最大化表示する。
※どのモニタで最大化しても問題無いと思われる(プライマリの区別なし)
2.「OLEを埋め込む親ファイル」を最大化解除で表示する。
3.親ファイルのウィンドウ左上を、
Excel本体のウィンドウ表示エリア内の左上原点に合わせるように移動する。
4.OLE埋め込みを行う。
5.埋め込んだOLEファイルを開く(自動的に最大化解除で表示される)
6.開いたOLEファイルを、表示したい位置に移動させる。
7.その状態で親ファイルを保存する。
8.観覧側(シングルモニタ側)で開くと、表示位置が保持されている。
※2と3は必須ではないが、この方だと親の位置も固定できる。
(ととろいも) 2014/01/08(水) 10:44
解決後ですが、 >これを必ず「必ず最大化表示」で開く方法はないでしょうか?
「挿入→オブジェクト→ファイルから」を使って、作成したOleオブジェクトには、 マクロ登録が出来ましたよね
標準モジュールに
Sub 最大化1() Dim bk As Workbook Dim shp As String shp = Application.Caller With ActiveSheet.OLEObjects(shp) .Select .Verb xlVerbOpen With .Object .Activate .Windows(1).WindowState = xlMaximized End With End With End Sub
上記のVBAコードを作成したOleオブジェクトに対し、マクロ登録すると、最大化が出来ました。
試して見てください。
(ichinose) 2014/01/09(木) 21:16
教えていただいた方法でばっちりできました。
親ファイルがマクロを持つので子(OLE)をいじる必要がないので、とても使いやすいです。
子の数が増えても同じマクロを使いまわせるのも便利です。
ありがとうございました。
(ととろいも) 2014/01/10(金) 09:58
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.