エクセルのマクロで、ユーザーに表示倍率の変更をさせない方法を教えて頂けないでしょうか。
シートのスクロールを制限して、シートの一部しかユーザーに見せたくないのですが、表示倍率を変更されたら簡単に見られてしまいます。
メニュー(エクセル2007ではリボン?)の操作を不可能にする方法もありますが、Ctrl+マウスのホイールで簡単に倍率変更できてしまいます。
シートの一部を非表示にして保護をしてしまえばいいのですが、その方法だと非表示の部分が空白であったとしてもそのエクセルファイルの容量が膨大に増えてしまいます。
できるだけ軽くしたいので、もしいい方法が分かる方がいらっしゃいましたら教えて下さい。エクセル2007を使用していますが、2003以前を前提にした方法でもいいです。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
VBAで色々WEB等調べて試行してみた。
(1)スクロールできる範囲を限定する
Sub スクロール可能領域を設定する()
シート名 = "Sheet1"
Worksheets(シート名).ScrollArea = "A1:H30"
End Sub
左上隅1画面に収まる範囲内ならその画面が固定されるようだ。
しかし質問にもある、表示のズームで縮小されるとより多いセル範囲の表示になる
(2)メニューの「表示」ー「ズーム」を現れないようにする。
Sub test03()
Dim x As Object
Set x = Application.CommandBars("Worksheet Menu Bar").Controls(3)
MsgBox x.Caption
'---
MsgBox Application.CommandBars("Worksheet Menu Bar").Controls(3).Controls(11).Caption
Application.CommandBars("Worksheet Menu Bar").Controls(3).Controls(11).Visible = True 'False
End Sub
上記の3や11でやってみて、「ズーム」とMsgboxで出たら
).Visible = True を).Visible = Falseにすると、メニューから消える。
(3)マウスのスクロールボタンの拡大を働かなくする。
これは以前にも質問があったように思うが、VBAレベルでは出来ず、APIなどを使わないとならないのではないかと思う。
ーー
以下は私見だが
一般にエクセルは、表を作った人が、使う前提のソフトだと思う。使う人が別で、操作者に勝手な操作をさせないなどのニーズには対応が少ないと思う。別の特注ソフトとかDBソフトを使うべきケースと思う。
それをエクセルしか知らないユーザーが、この質問コーナーにあれもしたい・こうもしたいと、丸投げしている場合が結構有るが、エクセルインサイドのそこまで判る回答者は少ないと思うし、回答が難しいと思う。
この回答への補足
確かに回答できる者は少ないかもしれません。
おっしゃるとうりです。もう質問はしません。
これを見た人も、操作者に勝手な操作をさせないための質問はもうやめましょう。
No.2
- 回答日時:
>非表示の部分が空白であったとしても
>そのエクセルファイルの容量が膨大に増えてしまいます
もしかして、VBAか何かで行(列)を【個別に】非表示にしているのでは?
私の環境(Excel2007)の場合、新規ワークブック(7.79KB)に対して、
4行目以降を【一括して】非表示にした場合は7.85KBだったのに対して、
4行目から10000行目までを【個別に】非表示にすると34.2KB になります。
さらに、下記のような無茶をすると、2.74MBにもなってしまいます。
(…という以前に処理自体にげんなりするほど時間がかかります)
↓「エレファント」な処理の例
Sub test()
'取り扱い注意 当分終わりません。
Application.ScreenUpdating = False
For i = 4 To Rows.Count
Rows(i).Hidden = True
Next i
Application.ScreenUpdating = True
End Sub
いずれにせよ、
非表示にするだけでサイズが極端に増えるというのは
正常な挙動ではありません。
以上ご参考まで。
No.1
- 回答日時:
> シートの一部を非表示にして保護をしてしまえばいいのですが、その方法だと非表示の部分が空白であったとしてもそのエクセルファイルの容量が膨大に増えてしまいます。
それ、ほんとう?
わたしのは2000ですが、仮にシート1枚だけのBOOKを、31行以降の行をすべて非表示にしてパスワード保護をかけても 11.5KB ⇒ 12.5KB となっただけですよ。
メニュー操作を不可能にするくらいしかVBAで表示倍率を変更できなくする方法は存知ませんが、もしできたとしてもマクロを無効にされたら意味ないですよね?やはり行か列の非表示で対応したほうがいいんじゃないかなあ・・・。
この回答への補足
容量が増えるのは本当です。エクセル2000は久しく使ってないので分かりません。
確かにマクロを無効にされる可能性もありますが、隠しファイルにしてUWSCというプログラムからうまく起動できないか模索してます。(結局何をやっても知識がある人の前では意味がないでしょうけど・・・)
最終的には非表示で対応するかもしれませんが、あきらめる前にそういう技術を知っている方がいればお教え頂きたかったということです。
ご回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelで、セル内に文字が入力さ...
-
VBAでエクセルシートを更新...
-
エクセルで別シート、または別...
-
エクセルの担当者別にシートを...
-
「24日の0時」って・・・
-
エクセルのチェックボックスを...
-
履歴書の日付間違いで落ちますか。
-
回覧板の日付について質問です...
-
エクセルの列が左右逆に・・・・
-
Accessでの時間別集計について
-
2つの日付の中間の日付 エク...
-
エクセルで最高値、最低値の日...
-
エクセルでのNULLという文字列...
-
パソコンで購入したデーターが...
-
日付の大小の表現
-
ACCESSで年度入力したい...
-
子機から親機に日付と時刻が転...
-
ACCESSで1月1日~12月31日まで...
-
Wordで、ヘッダーに印刷日付を...
-
Excelについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでエクセルシートを更新...
-
excelで、セル内に文字が入力さ...
-
エクセルのシートを同時に行削...
-
【エクセル】シートのロックで...
-
表示倍率を変更させない方法
-
エクセルの担当者別にシートを...
-
エクセルVBAで65536レコードを...
-
Excelのマクロで、開いた時に、...
-
エクセル◎○の人は、一つ昇格し...
-
エクセルVBAでデータ検索について
-
同一セルに入力規則のリストと...
-
エクセルシート内データの保護
-
エクセルで別シート、または別...
-
Excelで、表に小計と合計を入れ...
-
エクセルVBAの文字列の部分一致...
-
エクセルで、2つのシートにある...
-
ホームページビルダーv10でエク...
-
エクセルのCSVについて
-
ワードの差し込み印刷について
-
シートを串刺しで抽出したいの...
おすすめ情報