Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
freem
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Openai/69509ae0-53e8-8004-aaaa-2f999c8dda20
Add languages
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{DISPLAYTITLE:Excel SDI MDI 問題}} ''This conversation was exported from ChatGPT''<ref>{{cite web|title=Excel SDI MDI 問題|url=https://chatgpt.com/share/69509ae0-53e8-8004-aaaa-2f999c8dda20|publisher=ChatGPT|access-date=2025-12-29}}</ref> == gpt-5-2-thinking == === User: “■エクセルのキモさ === “■エクセルのキモさ ・Ctrl+zが複数ブック間に跨ってる(そうであってほしいことなんて一度もないのに) ・同じ名前のブック開けない ・新たにブック開いたら前のブックが出しゃばって来る ・コピーしたあと何かをdeleteしたら、手に持ってたはずのコピーが消える ・ファイル選択ダイアログ開いたら、ダイアログ開いてない他のブックも操作できなくなる ・セル編集中は新しいブックを開こうとしても阻害される” という記事があった。これって昔MDIだったことと関係あるかな。でも今はSDIだよね。返事は日本語で。 === Assistant: かなり関係あります。ただし「MDIだった名残そのもの」というより、いまSDIでも“同一インスタンス(同一プロセス)内のブック群”として設計されている名残、と言ったほうが当たりが近いです。 === かなり関係あります。ただし「MDIだった名残そのもの」というより、いまSDIでも“同一インスタンス(同一プロセス)内のブック群”として設計されている名残、と言ったほうが当たりが近いです。 Excel 2013以降はSDIで、1つのウィンドウに1つのブックが入る見た目になりました(各ウィンドウに専用のリボンも付く)。ただし既定では、新しいブックを開いても同じExcelインスタンス(同じプロセス)内に載ります。Microsoftの説明でも「別ウィンドウだが同じインスタンス」と明言されています。 Microsoft Learn<ref>{{cite web|title=Microsoft Learn|url=https://learn.microsoft.com/ja-jp/office/vba/excel/concepts/programming-for-the-single-document-interface-in-excel|publisher=Microsoft Learn|access-date=2025-12-29}}</ref> そして、その同一インスタンス内では計算や設定などが「グローバル」に共有されるものが残っています(再計算がグローバル、ブック間参照は同じ計算モードを共有、など)。 Microsoft Learn<ref>{{cite web|title=Microsoft Learn|url=https://learn.microsoft.com/en-us/office/vba/excel/concepts/programming-for-the-single-document-interface-in-excel|publisher=Microsoft Learn|access-date=2025-12-29}}</ref> この前提で、挙がってる“キモさ”を仕分けすると: ===== 1) Ctrl+Zが複数ブックに跨る ===== これはMDI/SDIというより「1セッション=1つのUndoスタック」設計の結果で、今も「仕様(by design)」扱いです。 Microsoft Learn<ref>{{cite web|title=Microsoft Learn|url=https://learn.microsoft.com/en-us/answers/questions/5556067/why-is-undo-redo-moving-between-multiple-excel-wor|publisher=Microsoft Learn|access-date=2025-12-29}}</ref> SDIになっても「同じインスタンスで複数ブックを扱う」限り、Undoをブック単位に分けてないので跨ります。 ===== 2) 同じ名前のブックを開けない ===== これも「同一インスタンス内のWorkbooksコレクション(や内部識別)の都合」が濃厚で、Microsoftの回答でも'''“同名ブックは同時に開けない→別インスタンスで開け”'''という回避策になっています。 Microsoft Learn<ref>{{cite web|title=Microsoft Learn|url=https://learn.microsoft.com/en-us/answers/questions/5168892/excel-cant-open-two-workbooks-with-same-name-at-th|publisher=Microsoft Learn|access-date=2025-12-29}}</ref> (ここはOSのMDI/SDIというより、Excel側の“インスタンス内一意”制約っぽい。) ===== 3) 新たにブック開いたら前のブックが出しゃばって来る ===== これは体感的には「同一インスタンスのUIスレッド/アクティブブックの切替イベントが強い」系で、SDIになっても“インスタンス内のアクティブ管理”が残ってるせいで起きがちです。MDIの見た目が消えても、内部の「アプリ主導でアクティブを握る」癖は残ります。 ===== 4) コピーしたあと何かをdeleteしたら、手に持ってたはずのコピーが消える ===== これはExcelの'''Cut/Copyモード(いわゆる“marching ants”)'''が、特定の操作で解除される仕様にかなり近いです。実際「だいたい何をしても(編集モードに入る等で)クリップボード内容ごと消える」趣旨の説明がMicrosoft Q&Aでもされています。 Microsoft Learn<ref>{{cite web|title=Microsoft Learn|url=https://learn.microsoft.com/en-us/answers/questions/4906904/excel-2016-for-mac-how-to-get-rid-of-marching-ants|publisher=Microsoft Learn|access-date=2025-12-29}}</ref> SDI/MDIというより、Excelのコピー実装(内部クリップボード+モード)問題。 ===== 5) ファイル選択ダイアログを開いたら、他のブックも操作できなくなる ===== これはアプリケーション・モーダル(そのExcelインスタンスを止める)だからです。 SDIは「ウィンドウが分かれた」だけで、同一インスタンスならダイアログはインスタンス全体をロックしがち。 ===== 6) セル編集中は新しいブックを開こうとしても阻害される ===== これもExcelの'''セル編集が“別モード”(モーダル状態)'''だからで、編集確定/キャンセルを優先して他コマンドを抑止します。MDI/SDIとは独立の話。 ==== じゃあ「昔MDIだったこと」とどこが繋がる? ==== 繋がるポイントはこうです: * '''SDI化は“ウィンドウ管理の変更”'''であって、 * “同一インスタンス内で複数ブックを一括管理する思想”は残った(Undo・計算・アクティブ管理・モーダルUIなどがインスタンス単位) Microsoft Learn<ref>{{cite web|title=Microsoft Learn|url=https://learn.microsoft.com/ja-jp/office/vba/excel/concepts/programming-for-the-single-document-interface-in-excel|publisher=Microsoft Learn|access-date=2025-12-29}}</ref> つまり、MDIの頃に自然だった「アプリが全部まとめて面倒を見る」設計が、SDIでもかなり温存されてて、その摩擦が“キモさ”として出てる感じです。 ==== いちばん効く回避策(思想レベル) ==== 「別ウィンドウ」に見えても同じインスタンスなので、本当に分離したいなら“別インスタンス(別プロセス)”で開くのが効きます。Microsoft公式でも excel.exe /x で新プロセス起動できると書いてあります。 Microsoft Learn<ref>{{cite web|title=Microsoft Learn|url=https://learn.microsoft.com/ja-jp/office/vba/excel/concepts/programming-for-the-single-document-interface-in-excel|publisher=Microsoft Learn|access-date=2025-12-29}}</ref> これをやると、少なくとも Undoの跨り と モーダルダイアログの巻き込み は“別インスタンス側”には波及しません(逆に言うと、同一インスタンスに載せてる限り治らない)。 必要なら、あなたの環境(Windows/Mac、Excelの版)前提で「普段の開き方を極力ラクにしたまま、必要時だけ別インスタンスで開く運用」を具体例つきで組みます。 === User: 「“同一インスタンス内で複数ブックを一括管理する思想”は残った」のところだけど、最初からSDIだったらこうなってなかったかな。返事は日本語で。 === 「“同一インスタンス内で複数ブックを一括管理する思想”は残った」のところだけど、最初からSDIだったらこうなってなかったかな。返事は日本語で。 === Assistant: かなりの部分は「最初からSDI文化で育ってたら、今みたいにはならなかった可能性が高い」と思う。少なくとも “ユーザーが期待する単位”が「このウィンドウ=このドキュメント」になりやすいので、設計者もそこに寄せる圧が強くなる。 === かなりの部分は「最初からSDI文化で育ってたら、今みたいにはならなかった可能性が高い」と思う。少なくとも '''“ユーザーが期待する単位”が「このウィンドウ=このドキュメント」'''になりやすいので、設計者もそこに寄せる圧が強くなる。 ただし、全部が消えたかというと微妙で、理由は2つあります。 ==== 1) 「MDIの名残」で説明できるタイプ(SDI起源なら別設計になりやすい) ==== * Undoがブックを跨る これは典型的に「アプリ全体で1つの編集履歴」発想。最初からSDI・ドキュメント中心なら、Wordみたいに「文書単位Undo」に寄せた可能性は高い。 ただし Excel は「ブック間で一発操作(参照・貼り付け・移動)」が多いので、完全分離のUndo設計は最初から難題ではある。 * ダイアログが“他のブックも操作不能”にする これも「アプリケーション・モーダル」文化の濃さ。SDIネイティブなら「そのウィンドウだけモーダル」にする圧が強いので、今ほど雑に全体を止めない方向に進んだ可能性がある。 * アクティブブックが出しゃばる/フォーカス奪い合い アプリが“全体の状態”を握りたがるのもMDI的。SDIで育つと各ウィンドウがもっと自治することが多い。 このへんは、あなたの直感どおり「最初からSDIなら、そうは作らなかったかも」が効きやすい領域。 ==== 2) 「Excelというアプリの性質」上、SDIでも残りがちなタイプ ==== * セル編集中に他操作を強く抑止する これはMDI/SDIというより「セル編集中=未確定の式・参照選択・IME絡み」という“特殊モード”をどう扱うかの問題で、どのみち制約は出やすい。 * コピーが特定操作で消える(Cut/Copyモードの解除) これもExcel特有の「範囲コピー=単なるクリップボード以上のモード」なので、SDIでも“変な消え方”自体は残った可能性が高い(ただ、別ブック・別ウィンドウへの波及範囲はもっと限定できたかもしれない)。 * 同じ名前のブックを開けない これは内部識別や参照解決、VBA/アドイン/自動化(COM)的な“ブックを名前で掴む文化”まで絡むので、SDI起源でも「インスタンス内一意」制約は残り得る。 (ただし、設計の自由度は増えるので、別名表示や内部IDで逃がす余地はあったはず。) ==== 結論 ==== * 「最初からSDIだったら今ほどキモくなかった」可能性は高い(特に Undo・モーダル・フォーカスまわり)。 * でも Excel は ブック間操作・参照・計算・アドイン/マクロ・自動化で“アプリ全体を1セッションとして扱う旨味”が大きいので、SDI起源でも「同一インスタンスで複数ブックを束ねる」方向へ引力が働きやすい。 * なので、キモさが0にはならないが、質と出方はかなり違った、がいちばん自然な落としどころだと思う。 もし「この箇条書きの中でどれが“設計の名残”で、どれが“本質的に難しい”か」をもう少し厳密に分類したいなら、各項目について「それが起きる最低条件(同一プロセス?同一インスタンス?同一UIスレッド?)」の観点で切り分けもできるよ。 == References == <references /> [[Category:ChatGPT Shares]] [[Category:openai]]
Summary:
Please note that all contributions to freem are considered to be released under the Creative Commons Attribution-ShareAlike 4.0 (see
Freem:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:Cite web
(
edit
)
Module:Citation/CS1
(
edit
)
Module:Citation/CS1/COinS
(
edit
)
Module:Citation/CS1/Configuration
(
edit
)
Module:Citation/CS1/Date validation
(
edit
)
Module:Citation/CS1/Identifiers
(
edit
)
Module:Citation/CS1/Utilities
(
edit
)
Module:Citation/CS1/Whitelist
(
edit
)
Module:Citation/CS1/styles.css
(
edit
)