
タイトルの件、個別のマクロはわかりました。
これを1つにまとめる、コードわかる方
いましたら、教えて下さい。
【やりたいこと】
1つ目→1つのマクロ【sub~end】で、リボン、行列、数式・ステータスバを非表示にする、
⇒出来れば、エクセルのSheet1だけ
⇒1つやるとマクロも入っていない他のエクセルファイルも非表示になる時とならない時があります
2つ目→1つのマクロ【sub~end】で、リボン、行列、数式・ステータスバを非表示にする
【コード】
●リボン非表示・再表示
Private Sub CommandButton1_Click()
' リボンを非表示にする
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"", False)"
End Sub
Private Sub CommandButton2_Click()
'リボンを表示する
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"", True)"
End Sub
●行と列、非表示・再表示
Private Sub CommandButton1_Click()
' リボンを非表示にする
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"", False)"
End Sub
Private Sub CommandButton2_Click()
'リボンを表示する
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"", True)"
End Sub
●数式バー非表示・再表示
Sub 数式バ()
Application.DisplayFormulaBar = False
End Sub
Sub 数式バー()
Application.DisplayFormulaBar = True
End Sub
●ステータスバーの非表示・再表示について
Sub ステータスバー()
Application.DisplayStatusBar = False
End Sub
Sub statusbar()
Application.DisplayStatusBar = True
End Sub
No.4ベストアンサー
- 回答日時:
>1.非表示にはなりますが、開いているシートがならずに別のシートが新しく作られ、それは非常時になります。
NewWindowをご存知でないようなので
ActiveWindow.NewWindow を消して下さい
>やりたいことは、既に開いているシートをアクティブシートを非表示にしたいです。
ご質問の
>出来れば、エクセルのSheet1だけ
気が変わったと言う事ですか?
>2.各モジュールに入れるのは下記のとおりですか?
ボタンから実行したいのですよね?
#3のコードはボタン用のコードです
ボタンによって変わりますが・・
>図形描画にて作成したボタンに
でしたら、
標準モジュールに#3 のコードを記し登録すれば良いです
#1の回答のコート
Sheet1シートモジュールに
Private Sub Worksheet_Deactivate()
display_control (True)
End Sub
ThisWorkbookブックモジュールに
Private Sub Workbook_Deactivate()
display_control (True)
End Sub
No.3
- 回答日時:
>図形の右クリック、マクロの登録のとこりに上記、マクロが出来ていません。
使い方が分からなかったのでイベントにしたのだけれど
ボタンから実行したいのですね
Subをボタン、マクロダイアログに登録表示する場合
引数を付けると表示できませんので呼び出し元を登録してください
#1#2を忘れて
Sub display_ON()
display_control (True)
End Sub
Sub display_OFF()
Call display_control(False)
End Sub
'下記は表示・登録できない
Sub display_control(flag As Boolean)
Worksheets("Sheet1").Activate
Dim i As Integer, wd As Integer
ActiveWindow.NewWindow
wd = Workbooks(ThisWorkbook.Name).Windows.Count
'ActiveSheet.Cells.Rows.EntireColumn.Hidden = Not flag
With ActiveWindow
If flag = False Then
Windows.Arrange ArrangeStyle:=xlVertical
Else
If wd > 1 Then
For i = wd To 2 Step -1
Workbooks(ThisWorkbook.Name).Windows(i).Close
Next
'.WindowState = xlNormal 'xlMaximized
End If
End If
.DisplayGridlines = flag
.DisplayHeadings = flag
.DisplayHorizontalScrollBar = flag
.DisplayVerticalScrollBar = flag
.DisplayWorkbookTabs = flag
End With
With Application
.DisplayFormulaBar = flag
.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"", " & CStr(flag) & ")"
End With
End Sub
NewWindowが良いかなと思い追加しましたが要らなければ消して下さい
ご指導ありがとうございます。
2つご質問です。ご指導よろしくお願いいたします。
1.非表示にはなりますが、開いているシートがならずに
別のシートが新しく作られ、それは非常時になります。
やりたいことは、既に開いているシートを
アクティブシートを非表示にしたいです。
2.各モジュールに入れるのは下記のとおりですか?
標準ジュールに
'下記は表示・登録できない
Sub display_control(flag As Boolean)
Worksheets("Sheet1").Activate
Dim i As Integer, wd As Integer
以下省略文字数制限のため
Sheet1シートモジュール
Sub display_ON()
display_control (True)
End Sub
Sub display_OFF()
Call display_control(False)
End Sub
ThisWorkbookブックモジュール
Sub display_ON()
display_control (True)
End Sub
Sub display_OFF()
Call display_control(False)
End Sub
No.2
- 回答日時:
こんにちは、返信について
1,はい 2,はい 3、ActiveWindow.DisplayHeadings = False
>いずれかのモジュールに1つだけ入れてでは、実行ができませんでした。
#1のVBAの説明
表示を表示、非表示とかイベントなどをON/OFFとかする時
同じメソッドやプロパティに対して命令を変えて事項する事で
重複するコードをまとめられますね(特に戻す必要がある場合は有効)
例 個々に分けた場合
Sub ステータスバーOFF()
Application.DisplayStatusBar = False
End Sub
Sub ステータスバーON()
Application.DisplayStatusBar = True
End Sub
Sub example()
call ステータスバーOFF
Msgbox "ステータスバーを非表示にしています"
call ステータスバーON
End Sub
まとめた場合(引数を付ける)
Sub ステータスバーswitch(flag As Boolean)
Application.DisplayStatusBar = flag
End Sub
Sub example()
call ステータスバーswitch(Flase)
Msgbox "ステータスバーを非表示にしています"
call ステータスバーswitch(True)
End Sub
多くの処理をする場合は特にまとめた方が良いと思います
各表示についてですがExcel ファイル オプション 詳細設定の表示を見てください
各表示が反映される対象はブックに対してとシートに対して反映されるものがあります これは、通常VBAで行う場合も同様です
ブックに影響が出てしまう表示もあるのでシート1のみと言うわけにはいきませんが 表示と言うのは見えていないシートに行っても見えないのだから意味が無いですよね
なのでシート1が見える時にOFFを実行、見えなくなる時にONを実行すれば良い事になります
シート1に対しての表示なので シート1のシートイベントをトリガーに実行する例を書きました
ブックにおいてアクティブシートは1つですからシート1の使い方で上手くいかないケースは考えられます
そのような時はブックのシート1ではなく 新しいブックを作りそのシート1を操作して表示し他の処理を行うようにすれば解決できるかもしれません
#1の Sub display_control(flag As Boolean) を下記のように変えると
行列番号の操作が出来ると思います
'ActiveSheet.Cells.Rows.EntireColumn.Hidden = Not flag
実行コードにするとセル領域が非表示になります
'.DisplayWorkbookTabs = flag
実行コードにするとシートタグが非表示になります
実行トリガーが無くなるので実施したい場合はショートカットキーで実行できるプロシージャやマクロダイアログから実行できるプロシージャをあらかじめ作成しておくようにしてください
Sub display_control(flag As Boolean)
With Application
.DisplayFormulaBar = flag
.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"", " & CStr(flag) & ")"
End With
'ActiveSheet.Cells.Rows.EntireColumn.Hidden = Not flag
With ActiveWindow
.DisplayGridlines = flag
.DisplayHeadings = flag
.DisplayHorizontalScrollBar = flag
.DisplayVerticalScrollBar = flag
'.DisplayWorkbookTabs = flag
End With
End Sub
Qchan1962様
いつもご指導ありがとうございます。
上記、コードを試し実行できました。
次に、図形描画にて作成したボタンに、上記マクロを割当ようと
思いましたら、図形の右クリック、マクロの登録のとこりに
上記、マクロが出来ていません。
●上記マクロは、ボタンに登録するにはどうすれば良いでしょうか?
他、マクロはSubにて定義した名前が表示されます。
宜しくお願い致します。
No.1
- 回答日時:
こんにちは
なさりたい事は良く分かりませんが
>出来れば、エクセルのSheet1だけ
Sheet1が常にFalseで良いなら
標準ジュールに
Sub display_control(flag As Boolean)
With Application
' リボン
.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"", " & CStr(flag) & ")"
'●数式バー
.DisplayFormulaBar = flag
'●ステータスバー
.DisplayStatusBar = flag
End With
End Sub
Sheet1シートモジュールに
Private Sub Worksheet_Activate()
display_control (False)
End Sub
Private Sub Worksheet_Deactivate()
display_control (True)
End Sub
ThisWorkbookブックモジュールに
Private Sub Workbook_Deactivate()
display_control (True)
End Sub
でどうでしょう
いつもありがとうございます。
3つ問合せなのですが
1.標準ジュール、Sheet1シートモジュー
ThisWorkbookブックモジュールの3つにコードを
入れて成り立つマクロですか?
いずれかのモジュールに1つだけ入れてでは、実行ができませんでした。
2.この場合、Sheet1だけがこの設定になり、他のブックやシートは
この設定にはならないということですか?
⇒希望はこのシートだけ、同設定になってほしいと考えています
3.最後に、行列の非表示も実施したいのですが
標準モジュールに、下記の .DisplayHeadings = flag
を入れましたが、動きませんでした。
お手すきな時に御指南頂けると助かります。
宜しくお願いいたします。
【行列に表示、非表示を出来るコード】
Sub Sample()
With ActiveWindow
.DisplayHeadings = Not .DisplayHeadings
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/06/19 10:08
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Visual Basic(VBA) VBA。複数のChangeイベントをまとめる方法 2 2022/03/31 12:03
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 6 2022/06/08 12:55
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ここでいいのかわかりませんが...
-
フランス語で”リボン”を使った...
-
パワーポイントのクイックアク...
-
来賓受付での言葉使い
-
メニューバーを非表示に 2007
-
【マクロ】リボン、行列、数式...
-
パワーポイントの2002と2007
-
手作りのしおり
-
山道で木に結んであるピンクの...
-
コサージュの作り方
-
Excelのリボンがいつもと表示が...
-
リボンメイドと和ゴス、メガネ...
-
このファッション、可愛いですか?
-
このDiorのリボンってどこに売...
-
もし知っていれば、、、
-
首吊り ビニール紐は苦しい?
-
パンツの紐を取り出したい
-
Gクリヤー等のゴム系ボンドの...
-
ドアノブに首吊ったら宙に浮く...
-
何かしらの紐が切れるのは縁起...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フランス語で”リボン”を使った...
-
「リボン」を意味するいい言葉...
-
山道で木に結んであるピンクの...
-
パワーポイントのクイックアク...
-
ここでいいのかわかりませんが...
-
うちわのラッピング
-
来賓受付での言葉使い
-
【マクロ】リボン、行列、数式...
-
Excelのリボンがいつもと表示が...
-
リボンのお花の作り方教えて下...
-
Jkはリボンがネクタイどっちの...
-
二色の別リボンを使って、一つ...
-
6番がわかりません。
-
幅が1センチのリボンの使い道
-
お詫びに菓子折りを送る場合の...
-
エクセル2010をVBAによりリボン...
-
リボンで金魚を作る方法
-
子どもの水泳帽のアレンジ方法
-
ラブプラスの恋人たちで誰が一...
-
パワーポイントの2002と2007
おすすめ情報