Excel VBAの初心者です。
今回、マニュアル本を見ながら試行錯誤でマクロにチャレンジしています。
用語や説明が上手くできないかもしれませんがよろしくお願いします。
OSはWindows2000、Excelのバージョンは2000です。
sheet1をメニュー画面として、コマンドボタンをいくつか貼り付けて、そのシート名を表示したコマンドボタンをクリックすると別のシートに
飛ぶようにしています。
別のシートに飛んで、そこで作業を終えたら、今度はそのシート上に貼り付けた『メニューに戻る』コマンドボタンをクリックしてsheet1のメニュー画面に戻るようにマクロを組みました。
ところが、作業用のシートからメニューに戻ると前回クリックしたコマンドボタンが表示上消えてしまっています。
そのコマンドボタンがあった位置にカーソルを持って行ってクリックするとちゃんとコマンドボタンの動作をします。
同じような質問がないか検索してみましたら『コマンドボタン上の文字の表示がおかしくなる』という質問があって、下記コードを入れたら解決したそうなので、Sheet1に下記のようなコードを入れてみました。
でもダメでした。
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
ActiveWindow.ScrollRow = 100
ActiveWindow.ScrollRow = 1
End Sub
解決方法のご教授をお願い致します。
No.4ベストアンサー
- 回答日時:
こんにちは。
> Application.ScreenUpdating = False
> ActiveWindow.ScrollRow = 100
> ActiveWindow.ScrollRow = 1
ワークシートには Redraw メソッドが無いので、その代用コード
だと思います。以前、一度同じような状況になって、
Application.ScreenUpdating = True
では再描写してくれなかったため、同様のコードを書いたことが
あります。ScrollRow を使ったのか覚えてませんが、確かシート
をスクロールさせたような..?
で、回答ですが、再描写が目的なので ScreenUpdating = False
として画面更新を止めてしまっては意味がないですよ。それ以前
のコード実行中に画面更新を止めている可能性があるので、
コードの終了部で、
Application.ScreenUpdating = True
ActiveWindow.ScrollRow = 100
ActiveWindow.ScrollRow = 1
としてみては?
そうなんです!
メニューに戻った時に、メニューから目的のシートに飛ぶためにクリックしたコマンドボタンだけが画面上で消えてしまっているんです。
でもそのコマンドボタンのあった位置をクリックしてみると、ちゃんとそのコマンドボタンで指定してあるシートに再度飛ぶので、画面表示上だけの問題だと想像して再描画をさせたかったのです。
画面を再描画させる手段を探して見つけたコードが質問中に書いたコードだったのですが、ScreenUpdatingをFalseにしてしまったのが間違いでした。
Application.ScreenUpdating = True
に直してみたら消えてしまったコマンドボタンも表示されるようになりました。
本当にありがとうございました。
No.3
- 回答日時:
状況がわかりません。
補足願います。1.Sheet1の列名は左よりABCD… 行No.は上より12345…と並んでいますか
2.SHee1に配置した全てのボタンが消えますか
3.コントロールツールボックス内のデザインモードをクリックしてください。
ボタンが表示されましたか? ボタンの左上角で右クリック→プロパティーで 下から3行目のVisibleは true になっていますか
4.マクロのコードを掲示願います。
ツールメニュー→マクロ→マクロ→マクロ選択→編集で表示されます。
表示中 ’(シングルコーテーション)で始まる色付きの行は不要です。削除して残りをコピー&ペーストします。
追伸 コマンドボタンには2種のプロパティーがあるのをご存知ですか?
一つはボタン自身のプロパティーで 上記3で表示されるもので
今一つは、セルとボタンのかかわりを設定するもので、マクロボタンの左上角右クリック→コントロールの書式設定から入るものです。
この回答への補足
説明がつたなくて申し訳ありません。
補足です。
1.Sheet1の列名は左よりABCD… 行No.は上より12345…と並んでいます。
2.メニュー用のSHee1から他のシートに飛ばすためにクリックしたコマンドボタンのみ消えています。
3.Visibleは true になっています。
4.コードを提示します。
sheet1のコードは
Private Sub CommandButton1_Click()
Worksheets("見積書").Activate
End Sub
Private Sub CommandButton2_Click()
Worksheets("請求書").Activate
End Sub
Private Sub CommandButton3_Click()
Worksheets("売上集計表").Activate
End Sub
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
ActiveWindow.ScrollRow = 100
ActiveWindow.ScrollRow = 1
End Sub
------------------------------------------
シート "見積書","請求書","売上集計表"ではそれぞれ
Private Sub CommandButton1_Click()
Worksheets("sheet1").Activate
End Sub
と入れています。
各シート上で各々いろいろな作業をさせているので他のコードもありますが、今回コマンドボタンが消えてしまうのは画面表示上だけの問題のようなので省略させていただきました。
プロパティーにつきましては、初心者なので本当によくわかっていないのですが、今回の問題でネットで検索して、ボタン自身のプロパティ上でAutoSizeをTrueをFalseに変更してみたり、コントロールの書式設定のプロパティタブのオブジェクトの位置関係を「セルに合わせて移動やサイズ変更をしない」に変更したり、いろいろといじってみました。
エクセルは本当に奥が深く、勉強しなければならない事がたくさんあると実感しました。
冒頭のコード
Application.ScreenUpdating = Falseを
Application.ScreenUpdating = Trueに直したら
コマンドボタンもきちんと表示されるようになりました。
ありがとうございました。
No.2
- 回答日時:
こんばんは。
>コマンドボタンが表示上消えてしまっています。
>コマンドボタン上の文字の表示がおかしくなる
コマンドボタンの文字が消えるということと、
ActiveWindow.ScrollRow = 100
ActiveWindow.ScrollRow = 1
と、どうつながるのですか?位置が違う場合でも、そんなコードは使わないです。たぶん、意味が違うのでは?マクロでは、そんなコードは、めったに書かないです。
「コマンドボタンが表示上で消える」と聞けば、ワークシート上から、フレームアウトしているかもしれませんが、ともかく、見えなくなっていると解釈できます。そういう話でしょうか。質問が良く分かりません。
たぶん、表示の問題は、フォームのコマンドボタンに書いているのでは?
その編集部分(Caption)に空白が入っているからではありませんか。ベテランでも、うっかりする失敗です。コントロールツールは、プロパティ一覧で確認できますが、フォームは出来ません。
ただ、Excel 2000 クラスのマニュアル本には、フォームを使うとかは、あまりないはずです。Excel2000 では、既に、隠しオブジェクトになってしまっているので、入門レベルでは、ほんの少ししか触れられないはずです。
この回答への補足
説明がつたなくて申し訳ありません。
補足です。
メニューに貼り付けたコマンドボタンをクリックして別シートに飛ばして、またメニューに戻った時に前回クリックしたコマンドボタンのみ画面上で消えてしまうのです。
でも、そのコマンドボタンの配置されているはずの位置をクリックすると、ちゃんとコード上の動作はしてくれるので、画面の表示上だけの問題だと推測しました。
コマンドボタンの文字が消えるということとのつながりとしては、コマンドボタンの表示がおかしくなったのを、きちんと表示させ直したら問題解決したという回答を見て、画面を再描画させる手段として参考にできるかな?と思ったからです。
使用しているExcelは2000なのですが、最近勉強を始めたばかりなので、購入したマニュアル本(3冊)は、みなExcel2002,2003,2007対応版を使用しています。
冒頭のコード
Application.ScreenUpdating = Falseを
Application.ScreenUpdating = Trueに直したら
コマンドボタンもきちんと表示されるようになりました。
ありがとうございました。
No.1
- 回答日時:
お役に立てずに申し訳ありません。
原因ははっきりと分かりませんが、入れてみたというコードに疑問があったので返信させて頂きます。
Application.ScreenUpdating = False
というのは画面の更新を止めるという処理になりますので、
そのあとの
ActiveWindow.ScrollRow = 100
ActiveWindow.ScrollRow = 1
のあと
Application.ScreenUpdating = True
という処理を入れるべきではないでしょうか。
冒頭のコード
Application.ScreenUpdating = Falseを
Application.ScreenUpdating = Trueに直したら
コマンドボタンもきちんと表示されるようになりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
- Excel(エクセル) EXCEL ActiveX コマンドボタンで実行する前にいったんmsgBoxで確認を求めたい 1 2022/07/06 19:41
- Visual Basic(VBA) 【ExcelVBA】動的にボタン、ボタン名を生成できますか? 7 2022/04/08 12:54
- Visual Basic(VBA) excel vba でユーザーフォーム入力ができない 2 2022/12/12 14:42
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) VBA 画面上のカーソルに文字数字を入力するコードを教えて下さい 1 2022/10/30 10:31
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) VBAで「クエリと接続」の画面を出せますか? 2 2022/10/24 13:35
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
エクセル2013でマクロのボタンがだんだんと消えていく。
Excel(エクセル)
-
EXCELのコマンドボタンが消えてしまった。元に戻したいのですが。
PowerPoint(パワーポイント)
-
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
-
4
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
7
コマンドボタンを押すたびに大きくなってしまう
Excel(エクセル)
-
8
マクロ実行後に別シートの残像が残り、オブジェクトが見えなくなる
Visual Basic(VBA)
-
9
エクセルVBAのメニューバー&リボンを再表示させる方法について
Excel(エクセル)
-
10
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
11
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
12
Excelで隠れてしまった図やテキストボックスを探す方法
Excel(エクセル)
-
13
シートに張り付けたボタンがシートのコピーで消える。
Visual Basic(VBA)
-
14
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
15
UserForm1.Showでエラーになります。
工学
-
16
オートシェイプが消えたり出たりする
Excel(エクセル)
-
17
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
18
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
19
エクセルVBAでオプションボタンを無効にする方法
Excel(エクセル)
-
20
エクセルでエラーが出て困っています。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スクロールしてもボタンを常に...
-
コマンドボタンを押すたびに大...
-
ShowAllDataのエラーを回避したい
-
エクセルVBAでOptionButtonのオ...
-
Accessのコマンドボタンの立体...
-
[ExcelVBA] コマンドボタンを押...
-
Excel:コマンドボタンの移動
-
押したボタンの位置取得(共通の...
-
マクロ登録ボタンに色をつける
-
エクセル:マクロボタンが編集...
-
PPTのコマンドボタンがクリック...
-
Excel VBAについて【図形を組み...
-
エクセルVBA
-
InDesignには「1段階戻る」の...
-
Excel VBA --- コマンドボタ...
-
エクセルでマクロを使わずに複...
-
エクセルVBA シート上にあるコ...
-
VisualStudioCodeで、Excelのク...
-
コマンドボタンがきかなくなる
-
イラストレータで5ボタンのマ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel:コマンドボタンの移動
-
コマンドボタンを押すたびに大...
-
押したボタンの位置取得(共通の...
-
スクロールしてもボタンを常に...
-
コマンドボタンがあるかどうか...
-
エクセルVBAでOptionButtonのオ...
-
エクセルVBA
-
Excel VBA --- コマンドボタ...
-
コマンドボタンで「終了ボタン...
-
ShowAllDataのエラーを回避したい
-
PPTのコマンドボタンがクリック...
-
エクセルのコマンドボタンの位...
-
Accessのコマンドボタンの立体...
-
エクセルVBA シート上にあるコ...
-
Wordでドラッグした文字列を括...
-
マクロ登録ボタンに色をつける
-
EXCELでNo.を変えて印刷したい
-
エクセル2007VBAでコマンド...
-
実行中の作業を中止させるコマンド
-
エクセルのマクロでスライドシ...
おすすめ情報