フォームを使うマクロを作成中です。
1つの機能分のマクロを書いては動作を確認しながら
作っていたのですが、

「ブックを開くと同時にシートを隠してフォームだけ表示」

というのを試してみたところ
無事フォームだけ表示されました。
が、作業の続きができなくて困っています。

フォームしか表示されないのでマクロの画面にいけません。
どのようにしたらよいのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (7件)

こんばんは。



>マクロの画面にいく手順として「開発」→「マクロ」→「編集」のみを使っていました。
>そうしますとマクロ無効の設定のためか「編集」ボタンが無効に
なっていますので、

解決して良かったです。実は、私は、Alt + F11のショートカットを通常使っているので気が付きませんでした。メニューからですと、面倒だからです。

なお、なんとか、今のやっているものは、完成させたほうがよいですね。それが良いにしろ、悪いにしろ、VBAを一通り扱える人は、一度は、やったことがあるはずです。

完全に、Excelの本体を見せずにマクロを実行させて終了させる方法としては、CreateObject("Excel.Application") を使ったほうが良いのではないか、私は考えています。
    • good
    • 0

こんばんは。



>マクロが無効だとマクロの編集もできない状態でしか
>ファイルが開けませんでした。

それは、編集できないなんて、ありえないのですが……。

ご質問者さんは、VBAを手がけてから、すでに3年以上は経っているはずですから、あまり初歩的なことではないと思うのですが。

私は、Excel 2000~2007 までは扱いますが、ExcelのVersion に関係なく、プロテクトをしていない状態で、そのようなことはありえません。もちろんプロテクトがしてあれば、マクロが無効状態でも開くはずがありません。

ワークシートから、ツール-マクロ-Visual Basic Editor で、[VBEditor] を開けるか、 Alt + F11 であけて、プロジェクトウィンドウから、UserForm の部分をクリックして、コードを出せばよいのですが、何か特殊なことをしているのですか?

できるだけ、詳しい説明をもう一度お願いします。
そうでなければ、いろいろ試してみてください。

この問題は、今回の件に関わらず、VBAをオフにして、VBEditor を開けられないと、仕事など、先々に困ることが起きます。これだけは、何はともあれ、実務でVBAプログラムを扱う者として必ず習得してください。

>こんな事もできるんだという好奇心からの行為でした。

別に、そのこと自体は悪くないです。FOMの教科書に載っています。ただ、FOMのテキストを書いた人が、今ひとつ、コードのできがよくないだけでなく、今は、それはやらないです。理由は、その後に、Application.Quit を入れると不明のエラーが発生することがあって、危険性はないものの、ハングしないで終了する方法が見当たらないのです。昔は、そのようなことがなかったのかもしれません。

この回答への補足

重ねてのご回答恐れ入ります。見事に解決しました。

この春からパソコンが変わってエクセルも2007になってしまい
戸惑うことばかりの中、
マクロの画面にいく手順として「開発」→「マクロ」→「編集」のみを
使っていました。
そうしますとマクロ無効の設定のためか「編集」ボタンが無効に
なっていますので、マクロのコードにも触れないものと思い込んでいました。

「Alt + F11」で問題なく開くことができ、
問題部分を取り除くことができました。
おかげさまで昨晩の労力を無駄にせずに済みます
ありがとうございます。

補足日時:2009/05/24 20:57
    • good
    • 0

何でこんなことを考えるのか、良くわからない。


普通に(完成までは手動で画面を選択し)やって、完成後画面シーケンスと言うか不要な下の画面を消す、を考えれば良いのでは。
ーー
下記が参考になれば。
Private Sub UserForm_Initialize()
MsgBox "エクセル画面を消す"
Application.Visible = False
End Sub
でフォームの表示と共にシート画面を隠す。
ーー
フォームをクリックする。
フォームを隠し、シート画面を表示。
Private Sub UserForm_Click()
MsgBox "エクセル画面を表示"
Application.Visible = True
Unload Me
Worksheets("sheet1").Activate
Application.VBE.MainWindow.Visible = False
End Sub
ーー
シートのSheet4をActivateすると
VBE画面を表示。
'Application.VBE.Window.Visible = Trueを生かすとコード画面。
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = "Sheet4" Then
MsgBox "VBE画面を表示"
Application.VBE.MainWindow.Visible = True
'Application.VBE.Window.Visible = True
End If
End Sub

この回答への補足

みなさま、ご回答ありがとうございます。

「マクロを実行させないように~」
ということでマクロの設定を
「警告を表示せずにすべてのマクロを無効にする」
「警告を表示してすべてのマクロを無効にする」
「デジタル署名されたマクロを除き、すべてのマクロを無効にする」
のいずれでも試してみましたが、
マクロが無効だとマクロの編集もできない状態でしか
ファイルが開けませんでした。

毎日少しづつ作っては保存していたので
「Application.Visible = False」を記入する前の
ファイルからやり直すことにしました。

> タスクマネージャーのプロセスでEXCEL.EXE を終了しなければなりません。

ご指摘いただかなければ気がつきませんでした。
フォームが終了してもエクセルが起動したままになってしまうんですね。
確認いたしました。

> 何でこんなことを考えるのか、良くわからない。

申し訳ありません。必要性から迫られてのことではなく、
こんな事もできるんだという好奇心からの行為でした。
仕事で使うマクロですが、締め切りに縛りがないのをよいことに
あれこれ試してみたくなっていました。

補足日時:2009/05/24 17:03
    • good
    • 0

こんにちは。



通常、Execl VBA経験者は、Application.Visible =False というコードは書きませんが、また、UserFormは、Terminateイベントを入れないままに、UserFormを閉じてはいけません。Excel Application は、残ったままになります。もし、そうしてしまった場合は、タスクマネージャーのプロセスでEXCEL.EXE を終了しなければなりません。

ご質問の
>フォームしか表示されないのでマクロの画面にいけません。

は、[スタート]メニューからExcelを起動して、Shiftキーを押しながら、該当のブックを開けるか、[スタート]メニューから、Ctrlキーを押しながら、Excelをを起動して、マクロを実行させないようにして開き、該当するブックを開けるかどちらかです。

しかし、本質的に、UserForm の表示だけで、起動-終了するには、おそらく、AddIn 型でないと不可能のような気がします。単独のブックのマクロだけで、起動で、アプリケーションの表示をしないのは可能でも、終了時には、今、いくつかの方法を試してみましたが、ハングします。

せいぜい、今のところは、このような方法しか思いつきません。
Private Sub UserForm_Terminate()
 Application.Visible = True
End Sub

AddIn型のマクロを作る必要があるのかは、お任せします。
    • good
    • 0

もっと良い方法があるかも知れませんが、プロセスの終了でExcelを閉じます。


タスクバーの何もないところで右クリックからタスクマネージャ-を起動
「プロセス」タブで、一覧からEXCEL.EXEをクリックして選択
「プロセスの終了」ボタンをクリックしてExcelを閉じる
再度、Excelを立ち上げ、「マクロは無効」で該当Bookを開く
Alt+F11でVBEを起動
Auto_Openマクロの
Application.Visible = False
を、削除するか
Application.Visible = True
にする。

# 余談
まず、Excel本体を起動
Alt+F11でVBEを起動
Excel本体の「ファイルを開く」から該当Bookを開く
ようにすれば今回のトラブルでも、VBEは開いているので
Application.Visible = True
することができ、Excelを再表示できる筈です。
    • good
    • 0

>フォームしか表示されないのでマクロの画面にいけません。


VBEを操作したいということですか?
フォームを閉じてはだめなのですか?
Excel本体は表示されているのですか?

コードを提示できないでしょうか。

この回答への補足

Auto_Openの中に
Application.Visible = False
を記入してからフォームを表示させています。

これでフォームのみの表示なってしまい
マクロのコードの画面を表示させられなくなりました。
(質問にも書き添えましたが。当然、エクセル本体は表示されていません。)

フォームのボタンなどにはまだ機能を割り振っていないので
身動きがとれません。

補足日時:2009/05/24 11:29
    • good
    • 0

ご質問を拝見いたしました。



さぞ、お困りのことと思います。
エクセルは詳しくありませんが、この手の操作方法としては、シフトキー、コントロールキー、またはF11、F8キーあたりを押しながら、立ち上げると、通常通り立ち上がる場合があります。
試してみてください。

参考までに
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAccess2007のフォームウイザードでデータシートを作りたいが方法が分からない

Access2003では、フォームウイザードでデータシートを作れたが。
Access2007では、フォームウイザードでは単票のフォームしか作れない様だ。

どうやって、作るのだろうか。操作が分からない。

Aベストアンサー

どういう帳票が欲しいかわかりませんが一応例として....
まずAccess上部にある作成をクリックします。
フォームウィザードをクリックして使用するテーブルとフィールドを選択します。
次に表形式を選択すれば帳票形式でフォームが作成されます。

もう1つはその他のフォームから複数のアイテムを選択すれば帳票形式でフォームが作成されます。

Q作業グループで空白行の非表示マクロ

1~40までのシート全てのB7:B36の範囲に空白があれば非表示にするというマクロを作ろうとしています。
Sheets(Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", _
"16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", _
"39", "40")).Select Replace:=False
Dim rw As Integer
Application.ScreenUpdating = False
For rw = 7 To 36
If Range("B" & rw) = "" Then
Rows(rw).EntireRow.Hidden = True
End If
Next
Application.ScreenUpdating = True
というマクロだと、1のシートしか適用しませんでした。1~40のすべてにこのマクロを適用させるにはどうすればいいのでしょうか。教えて下さい。

1~40までのシート全てのB7:B36の範囲に空白があれば非表示にするというマクロを作ろうとしています。
Sheets(Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", _
"16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", _
"39", "40")).Select Replace:=False
Dim rw As Integer
Application.ScreenUpdating = False
For rw = 7 To 36
I...続きを読む

Aベストアンサー

Dim rw, i As Integer
Application.ScreenUpdating = False
For i = 1 To 40
Sheets("" & i).Select
For rw = 7 To 36
If Range("B" & rw) = "" Then
Rows(rw).EntireRow.Hidden = True
End If
Next
Next
Application.ScreenUpdating = True

といった意味でした。

Q【Access】複数フォームを閉じる時の、選択処理について

Access Ver. : 2003
Windows Ver.: XP

Accessフォームの「閉じる時」処理で、下記のような工夫をした
いと考えております。

・フォームがひとつしか開かれていないとき、Accessを終了する
・複数のフォームが開かれている時、そのフォームのみを閉じる

そんなVBAコードがありましたら、教えてください。
何か参考になるページでも、かまいません。
どうぞ、宜しくお願いいたします。

Aベストアンサー

forms.count で開いているフォーム数を得て分岐
Application.quit

Access VBE のヘルプで、CurrentProject オブジェクト を見てみたら?

Qファイルを開くと同時にユーザフォームを表示させたい

Excelでファイルを開いたとき、自動的にユーザフォームを表示させるにはどのようにするのでしょう。下のコードを標準モジュールに書きました。「オブジェクトが必要です」のエラーメッセージが出てしまいます。
何を変えればいいのかお教えください。(Excel2002)

Sub Auto_Open()
UserForm1.Show
End Sub

Aベストアンサー

Thisworkbookに下記のようにコードを書いて下さい。

Private Sub Workbook_Open()
UserForm1.Show
End Sub

QACCESSフォームのボタン表示

ACCESSフォームのボタン表示

ACCESS2000で作成したフォームのボタンはACCESS2007でも変わりません。
ACCESS2007で一から作成したMDBは、ボタンの表示スタイルが異なります。
※ボタンの角が丸く、マウスカーソルをボタンの上に当てるだけで色が変わる。
ACCESS2000で作成したMDBをACCESS2007で上記のように表示させる設定は
あるのでしょうか?
いろいろ見ても、見当たらないのです。
よろしくお願いします。

Aベストアンサー

[Office ボタン] - [Accessのオプション] - [カレントデータベース] で
「フォーム上のコントロールに Windows のテーマを使用する」にチェック。

QExcel2003でマクロの自動起動と、フォームを使った検索と結果の表示

はっきりいってVBAやったことないです。
でも、作ってくれって言われて、次のことがしたいです。
Excel2003で、住所の漢字と振り仮名のシートを作り、検索のマクロをつくり、そのマクロを自動起動させたい。
検索にはコンボボックスで漢字の住所の一覧を出し、振り仮名を表示ボタンでプロンプトで検索結果を表示したいです
マクロの作成も、VBeditorの利用もまったく初めてです。
Excelは表の作成や式の入力、グラフ作成など一通り使用できます。
全盲なので、できるだけ、キーボード操作を教えてください。
よろしくお願いします。

Aベストアンサー

視覚障害がありながらグラフ作成もできるというのはすごいと思いますが、それはひとまず置くとして、質問の内容だけでは「こんな方法があります」という一般論ででしか回答ができません。それはマクロを作成するために必要な情報が足りないからです。

そこで補足質問です。
1.住所の漢字と振り仮名のシートがあるのは分かりましたが、何を入力して、何を検索するのですか? 質問文では「コンボボックスで漢字の住所の一覧を出し」とありますが、コンボボックスで選択した漢字住所をもとにして、振り仮名を表示させれば良いのでしょうか?

2.住所のレコードは何行くらいありますか? またそれは日々増えるデータですか?
 行数が多いとなるとコンボボックスで選択する方法は、スクロールが必要になるのであまり便利な方法とはいえなくなります。

3.住所が入力されているシートのデータ配列を教えてください
 例)1行目がタイトル、A2から下方向に漢字住所。B2から下方向に振り仮名 など

なお全くのVBA初心者にはユーザーフォームや検索系のマクロはハードルが高いです。シート上に配置したコンボボックスとVLOOKUP関数の組み合わせならVBAの知識は不要なので、この方法もご検討されてはいかがでしょうか 

視覚障害がありながらグラフ作成もできるというのはすごいと思いますが、それはひとまず置くとして、質問の内容だけでは「こんな方法があります」という一般論ででしか回答ができません。それはマクロを作成するために必要な情報が足りないからです。

そこで補足質問です。
1.住所の漢字と振り仮名のシートがあるのは分かりましたが、何を入力して、何を検索するのですか? 質問文では「コンボボックスで漢字の住所の一覧を出し」とありますが、コンボボックスで選択した漢字住所をもとにして、振り仮名を...続きを読む

QExcelで作成されたフォームをAccessにコンバージョンしたいので

Excelで作成されたフォームをAccessにコンバージョンしたいのですが、フォームのインポートはできないのでしょうか?
Accessのフォーム作成画面から、インポートを選択していって、Excelファイルを開くのですが、シートしか選択できません。
コントロールのコピペもできないみたいですが。。。
Excelで作成されたフォームはAccessにはインポートできないのですか?
コーディングをそっくり使用することはできなくても、せめてフォームのデザインはコピーしたいのですが。。。(> <)
よろしくお願いします。m(_ _)m

Aベストアンサー

質問者はプロかプロ経験者ですか。でないならこんな勉強は試みないほうが良いでしょう。
市販の書物や初心者向けの講習で説明される話題ではない。プロで会社にその辺の経験者がいたりすれば聞けるでしょうが。原理的には最熟練者の人は変換プログラムは組めるかもしれませんが、そのレベルの人は、この質問コーナーを読んでないでしょうし、無料で教えるスキルではないと思います。
WEBの記事も多分少ないでしょう。
Googleででも「エクセル フォーム アクセス 移行」で出てくる記事を参考にしてはどうでしょう。
http://www.accessclub.jp/bbs2/0080/beginter24987.html
同じ発想の人はいることはいるが。
ーー
VBAとVBのフォームはコードで扱う上で微妙に違うし、アクセスVBAとエクセルVBAでは違う点も多い。
またコントロールの生成もコードで行う方法は隠して、易しいD&Dやマウスによる移動、プロパティボックスでの入力にして易しくしています。
エクセルのUserForm1のフォームも本格的なものではないサービスのような気がする。エクセルで第3者を巻き込んだ業務の開発までは予定して無いように推測する(何でもエクセル的な過大期待が横行している)。
それにエクセルでのセルとの連携をつけた機能LinkedCell、FillいstRangweなどはエクセル特有で、RecordSourceのSQL指定やフォーム指定はアクセス特有と思います。
外観を決めるサイズや書式関係は(エクセルでフォームやコントロールの)プロパティーメモー(アクセスでのフォームやコントロールの)プロパティ設定でやや似せて移せるかもしれない。
エクセルバージョン内の相違、エクセル・アクセルで使えるコントロールの種類の相違などもあります。

質問者はプロかプロ経験者ですか。でないならこんな勉強は試みないほうが良いでしょう。
市販の書物や初心者向けの講習で説明される話題ではない。プロで会社にその辺の経験者がいたりすれば聞けるでしょうが。原理的には最熟練者の人は変換プログラムは組めるかもしれませんが、そのレベルの人は、この質問コーナーを読んでないでしょうし、無料で教えるスキルではないと思います。
WEBの記事も多分少ないでしょう。
Googleででも「エクセル フォーム アクセス 移行」で出てくる記事を参考にしてはど...続きを読む

QExcel マクロで複数ブックのデータを一つのブックにまとめる方法

マクロ初心者です。
1つのフォルダの中に複数のbook(sheetも複数)があります。
これを新しい1つのbookにまとめたいです。
回答に下記マクロがありました。

Sub consolid()
Application.ScreenUpdating = False '画面更新を一時停止
Set mb = ThisWorkbook 'このコピー先ブックをmbとする。
myfdr = ThisWorkbook.Path
fname = Dir(myfdr & "\*.xls") 'フォルダ内のExcelブックを検索
Do Until fname = Empty '全て検索
If fname <> mb.Name Then 'ブック名がこのブックの名前でなければ
Set wb = Workbooks.Open(myfdr & "\" & fname) 'そのブックを開きwbとする。
wb.Worksheets.Copy After:=mb.Sheets(mb.Sheets.Count) 'コピーしてコピー先ブックの末尾に置く
wb.Close '開いたブックを閉じる
n = n + 1 'ブック数をカウント
End If
fname = Dir 'フォルダ内の次のExcelブックを検索
Loop '繰り返す
Application.ScreenUpdating = True '画面更新一時停止を解除
MsgBox n & "件のブックをコピーしましました。"
End Sub


これで使用した所マクロを実行する度に何度も同じシートが
コピーされてしまいます。
できれば同じ名前のシートは上書きにしてマクロを何度も使用できるように【各BOOKは毎週更新されて私のフォルダに入ってきます】したいのですが
そのような事は可能なのでしょうか?
どなたか分かる方教えてください。お願い致します。

マクロ初心者です。
1つのフォルダの中に複数のbook(sheetも複数)があります。
これを新しい1つのbookにまとめたいです。
回答に下記マクロがありました。

Sub consolid()
Application.ScreenUpdating = False '画面更新を一時停止
Set mb = ThisWorkbook 'このコピー先ブックをmbとする。
myfdr = ThisWorkbook.Path
fname = Dir(myfdr & "\*.xls") 'フォルダ内のExcelブックを検索
Do Until fname = Empty '全て検索
If fname <> mb.Name Then 'ブック名がこのブックの名前でなければ
Set wb = W...続きを読む

Aベストアンサー

#3です。

Sub consolid_try()
Dim mb As Workbook
Dim wb As Workbook
Dim ws As Worksheet
Dim cws As Worksheet
Dim myfdr As String
Dim fname As String
Dim n As Integer

Application.ScreenUpdating = False '画面更新を一時停止
Set mb = ThisWorkbook 'このコピー先ブックをmbとする。
myfdr = ThisWorkbook.Path
fname = Dir(myfdr & "\*.xls") 'フォルダ内のExcelブックを検索
Do Until fname = Empty '全て検索
If fname <> mb.Name Then 'ブック名がこのブックの名前でなければ
Set wb = Workbooks.Open(myfdr & "\" & fname) 'そのブックを開きwbとする。

On Error Resume Next
For Each ws In wb.Worksheets
Set cws = mb.Worksheets(ws.Name)
If Not cws Is Nothing Then
Application.DisplayAlerts = False
mb.Worksheets(ws.Name).Delete
Application.DisplayAlerts = True
End If
ws.Copy After:=mb.Sheets(mb.Sheets.Count) 'コピーしてコピー先ブックの末尾に置く
Next
On Error GoTo 0
wb.Close '開いたブックを閉じる
n = n + 1 'ブック数をカウント

End If
fname = Dir 'フォルダ内の次のExcelブックを検索
Loop '繰り返す
Application.ScreenUpdating = True '画面更新一時停止を解除
MsgBox n & "件のブックをコピーしましました。"
End Sub

こうゆう事でいいのでしょうか。

#3です。

Sub consolid_try()
Dim mb As Workbook
Dim wb As Workbook
Dim ws As Worksheet
Dim cws As Worksheet
Dim myfdr As String
Dim fname As String
Dim n As Integer

Application.ScreenUpdating = False '画面更新を一時停止
Set mb = ThisWorkbook 'このコピー先ブックをmbとする。
myfdr = ThisWorkbook.Path
fname = Dir(myfdr & "\*.xls") 'フォルダ内のExcelブックを検索
Do Until fname = Empty '全て検索
If fname <> mb.Name Then 'ブック名がこのブックの名前でなければ
...続きを読む

QVBからmdbファイル(Access2000)の特定のフォームを開きたい?

VisualBasicのフォームに配置したコマンドボタンをクリックすることで、特定のmdbファイルをAccess2000で開き、開くと同時に特定のフォームが表示されるようにしたいのですが、こんなことできますか?できるとすればどのようにすればよいのですか?

例えば、C:\商品管理\在庫一覧.mdbにフォーム商品があるとしたとき、
Form1のcommand1をクリックすると、C:\商品管理\在庫一覧.mdbがAccess2000で開き、フォーム商品が最初に表示されるようにしたいのですが・・・
ちなみに、Access2000の起動時の設定では他のフォームが最初に開くようになっています。
よろしくお願いします。

Aベストアンサー

オートメーションを使ってAccessを制御しましょう。
で、他のフォームが最初に開くようになっていることなので、最初に開くフォームを閉じてからAccessを表示するようにすればいいと思います。

Dim acs as Object

'AccessのApplicationオブジェクトを取得する。
Set acs = CreateObject("Access.Application")

'c:\test.mdbを開くacs.OpenCurrentDatabase "c:\test.mdb"

'起動時に開かれたフォームを閉じる
'2はacForm定数のこと
acs.Close 2,"フォーム名"

'Accessを表示させる
acs.Visible = True

'表示させたいフォームを開く
acs.OpenForm "フォーム名"


こんな感じで。

最後に、Accessを終わらせるときは

'オブジェクトの開放
Set acs = Nothing

で、オブジェクトを開放してください。

オートメーションを使ってAccessを制御しましょう。
で、他のフォームが最初に開くようになっていることなので、最初に開くフォームを閉じてからAccessを表示するようにすればいいと思います。

Dim acs as Object

'AccessのApplicationオブジェクトを取得する。
Set acs = CreateObject("Access.Application")

'c:\test.mdbを開くacs.OpenCurrentDatabase "c:\test.mdb"

'起動時に開かれたフォームを閉じる
'2はacForm定数のこと
acs.Close 2,"フォーム名"

'Accessを表示させる
acs.Visibl...続きを読む

Qマクロの記述を非表示(隠したい?)にしたいです。

マクロの記述を非表示(隠したい?)にしたいです。
初心者なもので質問の仕方が悪いのかも知れませんがよろしくお願いします。
「マクロの記述が見えないようにしたいのでその方法があれば教えて下さい。修正したいときに自分だけマクロの記述が見えるようにしたいです。また、例えばですが番号(パスワード?)を入力したときに、***とか●●●という具合に表示する方法も合わせて教えていただければと思っています。」

初心者なので詳しい設定というかやり方が良く解っていません。というかプロの方々からみて全く解っていないと言う表現のほうが合ってると思いますがよろしくお願いします。

Aベストアンサー

プロの方ではないですが
VBEのVBAProjectのプロパティのことだと思います
[レ]プロジェクトを表示用にロックする


人気Q&Aランキング

おすすめ情報