- ベストアンサー
excel でメニュー画面を作りたい
EXCELで以下のようなメニューをマクロで作りたいと考えています。 どなたか教えていただけませんか。 以下の内容です。 (1) menu.xlsに4個のボタンを設定し、各ボタンから該当のsheetを起動する。 例 A.xls → sheet1 → sheet2 B.xls → sheet1 → sheet2 (2) 各sheetに「menuへ」のボタンを設定しmenuへ戻る。 (この際sheetを保存し閉じてからメニューへ戻る) 以上 宜しくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
VBAの知識が要ると思います。 ユーザーのメニュー作成は、アクセスには、それ向きのものがあるが、 http://www.wanichan.com/pc/faq/access/08.htm エクセルには無いとおもう。 自分でフォームを作らないといけない。 アイデアはあるが、回答すると丸投げ丸受けになり、長く複雑になりそうです。 フォームに4つのコマンドボタンをつくり、クリックイベントまでは作ってみてください。そしてメニューフォームの表示までのコードを作って見てください。1つのブックに飛んでみる実験をし、シートの戻るボタンでメニューに戻るかテストしてみてください。 簡単のため、皆1つとか、決まったブックシート1つを開く、でテストをお勧めします。増やすのは簡単。 エクセルを実行 メニューの表示 コマンドボタンをクリック 決まったブック・シートが開く 戻るをクリック メニューに戻る。 ーー ここまではできました、残る解決点はこれこれと再質問しては。
その他の回答 (2)
- x0000x
- ベストアンサー率52% (67/127)
>次の流れが分かりません。 >「閉じる」ボタンを押すと当然エクセル自身が終了してしまいます。 EXCELブックの保存と終了は以下で可能です。 また、menuブックがOPEN済みであるなら、対象ブックを閉じた後で、menuブックをActive化できます。 Public Sub 戻り() Me.Close SaveChanges:=True 'Open中ブックを上書き保存し、閉じます。 Workbooks("menu.xls").Activate '"menu.xls"を利用可能にします。 End Sub
お礼
具体的なプロシージャありがとうございました。 早速トライしてみます。
- marbin
- ベストアンサー率27% (636/2290)
シートを起動、シートを保存、というのがよく分からない のですが・・・。 ブックのことでは無いですよね?
お礼
試行錯誤で目的を達成できました。 ありがとうございました。
補足
早速質問を頂きありがとうございます。 未熟な質問内容に申し訳ありません。 シート起動とは 例えばXブックにmenuを作り 「風邪薬」というボタンを押すと Aブックの中のシート1(風邪薬類)を開く 「腹痛薬」というボタンを押すと Aブックの中のシート2(腹痛薬類)を開く 同じ様に Bブックの中のシート1(化粧品類)を開くボタン Bブックの中のシート2 (洗剤類)を開くボタン のように考えていました。 なお sheetを保存・・とはXブックのmenuに戻る際 menuのボタンから移動した(開いた)シート(例えばBブックのシート2洗剤類)の処理作業終了後 Bブックを上書き保存閉じてからmenuへ戻るボタン (従って menuへ戻るボタン は各シート上に配置する) このように考えています。 以上 しっかりした説明が出来なくて済みません。 ご理解いただけたでしょうか。 お手数をお掛けしますがよろしくお願いいたします。
お礼
いろいろご指導いただきありがとうございました。 試行錯誤し2つのブックを改めて1つのブックでまとめ何とか目的を達成できました。 ありがとうございました。
補足
早速ご指導を頂きありがとうございます。 早速 マクロの知識(VBA)がないのですが ご指示のように エクセルで簡単なメニューを作りました。 フォームで取り合えず1つのコマンドボタンを配置し このコマンドボタンに 「新しいマクロの記録」で作成したマクロを登録テストしました。 お蔭様で 目的のシートを表示(起動)出来ましたが 今度はシートに配置した「メニューに戻るボタン」へ登録すべく マクロの記録がうまく出来ません。 以下の流れで作成しましたが… 起動したシートで作業終了直前「新しいマクロの記録」を起動し 「上書き保存」までは記録が可能でした(未確認です)が次の流れが分かりません。 「閉じる」ボタンを押すと当然エクセル自身が終了してしまいます。 記録されたマクロのどの部分を編集すれば可能なのか、ここで行き詰まりました。 再度お知恵を頂けたら幸いです。