• ベストアンサー

Excelのような複数シートのあるアプリケーションを作りたい

Excelのような複数シートのあるアプリケーションを作りたい Excelのような複数シートのあるアプリケーションを作りたいのですが、 これはどのようにすればよいのでしょうか?(.NET) コントロールがあるなど、簡単にできるのでしょうか? それとも工夫して自作していかなければならないのでしょうか? 「Excel シート vb」などを検索してもVBAの話のサイトばかり出てくるので 困っております。 参考サイトなどありましたら教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

回答が遅れてしまい、申し訳ありませんでした。 すいません。 複数のシート=アプリ、ドッキング というイメージで回答していましたので、的外れになってましたね。 Excelシートはアプリ(Excelウィンドウ)の中のアプリ(A.xls)にタブ機能ではなく、ドッキングウィンドウを持たせているものでしたので、その辺の機能と同じなのかな?とrerere123さんの要望を勘違いしてました。 とりあえず、タブコントロールでは色々制限されると思ったので、SDock(Docking Window Control For .Net)というのを使ったほうがいいカナと思いました。 SDockは日本人制作ですので、日本語でやりやすいです。 また、タブコントロールにはない、ドッキングウィンドウにスクロールバーを備えているので、尚更ほしい機能ではないかなと思いました。 ただし、タブ左にボタンは付けられないですけど・・・・ ひとまず、あげられたタブの欠点?3つを2つはクリアしていますので、いかがかな?という感じです。

その他の回答 (3)

回答No.3

お~なるほど。。。 でも、それでしたら、なおさらMDIですよ。 あっ、Excelみたいにシート名の部分は無く、TabControlのような画面になってしまいますが・・・ その1(無料で可能) http://dobon.net/vb/dotnet/links/dockingwindow.html その2(有料ですが、強力) http://codezine.jp/article/detail/3175

noname#166246
質問者

補足

たびたびのご回答ありがとうございます。 最初に再度確認させてください。 MDIの解釈が、まだ、buraigashoさんと私で違っているかもと感じるからです。 MDI(=Multipul Document Interface)ですが、私の解釈では、 複数ドキュメント(ファイル)を開いたときに、 同一の(アプリの)ウィンドウで扱うのが、MDIで、 それぞれの独立した、アプリウィンドウで扱うのが、SDIと理解しています。 (システム的にはプロセスが独立かどうかとか色々あるのでしょうが) Excelですと、A.xlsとB.xlsを同時に開いたとき、 Excelのウィンドウはひとつのみ共通で現れます。 このことをMDIと呼ぶのではないでしょうか? それぞれのブックをウィンドウメニーから、(ひとつのExcelウィンドウ内で) どのように表示させるかを、選ぶこともできます。並べて表示させたり、などなど。 (手元にあるExcelのバージョンは2003なので「メニュー」と言わせてください) http://officetanaka.net/excel/excel2007/021.htm 参考に挙げていただいた、リンクその2なのですが、 そのサンプル(タブ形式のエディタ)でも、それぞれのタブには、 別のテキストファイルが開かれていますよね。 私が行ないたいのは、複数のファイルを開いたときには、 アプリウィンドウが複数表れる形式のアプリ作成です。 なので、あくまで「SDI」だと思うのですが、、、 作りたいのは、そのそれぞれのアプリウィンドウ内で、 複数シート(単純に行うのであれば、TabControlをFill状態で置いたような感じ)を 持つ形式のアプリです。 Excelのように単純に切り替えられればよく、それぞれのシートを Dock状態にしたりしなかったりという機能も不要です。 ------------ で、紹介いただいているものが、SDIでも今回のようなシートを複数持つ形式に 応用できるというのであれば、研究してみようかと思いますが、その前に TabControlより有利な点を教えてください。 私が書きました、TabControlを使った場合の3つの欠点(?)である、 ・タブを下の位置に設定したとして、Excelのように、タブの左にボタンを付けれない ・Excelのように、タブをドラッグで入れ替えられない。 ・スクロールバー(ここでは水平バー)を横に置き、Excelのように、 その大きさをドラッグで調整できない。 のうち、ご紹介いただいたものを使うと可能になるのはどれでしょうか? 2番目はできるようになるよ、ということでしょうか? 1番目や3番目もできるようになるのでしょうか? 1番・3番ができないようならば、英語の資料を読むよりも、3番だけを諦めて ボタンなどで自作するか、いっそのこと全部を諦めて、 TabControlにしてしまった方が楽なような気がしますので。

回答No.2

.NETでしたらMDIアプリケーションです。 参照サイトを参考に作ってみてください。

参考URL:
http://dobon.net/vb/dotnet/form/mdiapplication.html
noname#166246
質問者

補足

ANo.1の方に対する補足でも書きましたが、MDIとは別かと思っているのですが、 いかがでしょうか。

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.1

> Excelのような だと、Excel を使えばいいから需要が無いんでしょう。 特に > コントロールがあるなど、簡単にできるのでしょうか? とか言うレベルなら Excel を使えばいいと言っているようなものです。 Excel の機能は必要無くてページが切り替わるだけでいいなら タブコントロールがあります。 > それとも工夫して自作していかなければならないのでしょうか? 同じコントロールを、例えばボタンで切り替えるだけなら、 10分もあれば作れるでしょう?今時マイナーかもしれないけど、 MDI はフォーム単位でそのようなつくりを実現するものですし。

noname#166246
質問者

補足

紛らわしい書き方をしてしまいました。 「Excelのような」「複数シートのある」アプリケーション、ではなく、 「Excelのように複数シートのある」アプリケーション、の意図でした。 それぞれのシートでは「Excelのような処理」は行ないません。 分かりにくくて申し訳ありませんでした。 タブコントロールは分かっているのですが、使い勝手が今一つです。 ・タブを下の位置に設定したとして、Excelのように、タブの左にボタンを付けれない ・Excelのように、タブをドラッグで入れ替えられない。 ・スクロールバー(ここでは水平バー)を横に置き、Excelのように、 その大きさをドラッグで調整できない。 自作ですが、特に今回は、PanelにPictureBoxを置いてスクロールバーを 自動管理してもらおうかと思っています。 http://dobon.net/vb/dotnet/graphics/scrollimage.html そうなると自作でもスクロールバーの左にタブがある形を取るのは無理そうな気がしています。 継承するなどしてコンテナを自作するような力があれば別なのかもしれませんが。 良い案がありますでしょうか。 なお、MDIとは違うと思います。 MDIは、Excelのように、複数のブックを開き、それらをウィンドウとして 管理する形のアプリかと思います。 SDIのように、ひとつのデータファイルだけを開く形でも、 それが複数シートを持つことはできるはずです。