
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
非表示方式なら、すでに、
http://oshiete.goo.ne.jp/qa/10456549.html
で披露しました。こちらは、マクロを不可にしたら、中身は見えません。
しかし、こちらのご質問は、そのままでは、VBA内では不可能だと思っています。
Workbook_SheetActivate(ByVal Sh As Object)
では、開けた後に発生するものです。シートを開けさせない、つまりクリツクを帳消しにすることは不可能だと思います。
>シートの存在は下のべろ(シートタブ)で見えるが、そこをクリックするとパスワードを求められる、
これは、コントロール・ボタンの仕様です。シートタブに、一般的にはそのような機能はありません。先程、Excelの構造をResource Hacker で調べてみましたが、不慣れなせいか良く分かりません。そのものの機能は調べても見当たらないと思います。
>一度そのシートを離れれば戻るときにはまたパスワードを求められるのが理想的です。
マウスで動かしている分には、Excelは反応してくれますが、何もしないままですと、今回作ったものは閉じてしまいます。
全体のマクロは、ご興味がなければお見せすることはありませんが、とりあえず、そのイントロの部分だけを見せます。これはボタンのみです。これはシステムですから、一部のコードだけみても、雰囲気ぐらいで意味もありませんが、添付画像のようになります。
Sub AddButton() '①
'シート1以外のボタンを付ける
Dim y1 As Double, x1 As Double, x2 As Double, y2 As Double
Dim i As Long, j As Long
Application.Goto Worksheets(1).Range("A1"), True
y1 = ActiveWindow.UsableHeight / 2
With Worksheets("Sheet1")
For i = 2 To Worksheets.Count
x1 = 5 + (40 * j)
x2 = 40
y2 = 15
With .Buttons.Add(x1, y1, x2, y2)
.Caption = Worksheets(i).Name
.OnAction = "SheetsOpen"
.Placement = xlFreeFloating
End With
j = j + 1
Next
End With
End Sub
'--続く--

No.2
- 回答日時:
Workbook_SheetActivate(ByVal Sh As Object)
のイベントに記述すれば可能かと。
まず当該シートでない場合にはかならずシート名を
変数に記憶します。
当該シートの場合は、記憶した変数のシートに戻してから
パスワードの合致を確認してから表示すればよいのでは?
マクロ禁止されたら没ですけど・・・。
No.1
- 回答日時:
>シートの存在そのものは非表示にせず、シートの存在は下のべろ[シートタブ]で見えるが、そこをクリックするとパスワードを求められる、
ずっと調べてみましたが、少なくとも、ご希望の仕様はVBA内では、不可能だと思います。シートタブ属性のEXCEL7 Class にシートタブ・コントロールがあれば可能ですが、そのようなものはありません。
例えば、UserForm やホームシート(Sheet1)上で、ボタン・コントロールを設けたりするぐらいしか思いつきません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
[Excel VBA]イベントマクロ上でブック保護解除、再度ブック保護する方法
Excel(エクセル)
-
Exel 一部のセルにのみ、閲覧制限をかけたい
Visual Basic(VBA)
-
Excelで別シートを見られないようにしたい
Excel(エクセル)
-
-
4
エクセルで一部のシートを見れないようにしたい
Excel(エクセル)
-
5
エクセルシートの閲覧制限について
Excel(エクセル)
-
6
エクセルシート毎の権限について
Excel(エクセル)
-
7
Excel 一部データを隠す(見えないように保護)
Excel(エクセル)
-
8
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
9
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
10
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
11
Excelの条件付き書式設定の太い罫線
Excel(エクセル)
-
12
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
13
エクセルVBA InputBoxで入力欄を*****
Excel(エクセル)
-
14
エクセル もし、セルが空欄なら、その上のセルの値を入力する
Excel(エクセル)
-
15
エクセル 特定の文字を入れると他のセルの色が変わる
Excel(エクセル)
-
16
あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように
Excel(エクセル)
-
17
0.5時間などの時間計算の方法
その他(家事・生活情報)
-
18
EXCELファイルに誰がアクセスしたかを見たい
Access(アクセス)
-
19
エクセルファイルを開く時、常に同じシートから開くようにするには?
Windows Vista・XP
-
20
Excel 条件によって入力禁止にする
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
ワークシートそのものの色を変...
-
5
【ExcelVBA】マクロの入ったシ...
-
6
エクセルのシート名の変更がで...
-
7
指定したシート名以外を非表示...
-
8
エクセルで色つきセルを一括で...
-
9
エクセル、特定のシートにパス...
-
10
エクセル 非表示のシートをハ...
-
11
ハイパーリンクでジャンプした...
-
12
特定のシートのみ再計算させな...
-
13
特定の複数のシートに同じ処理...
-
14
(エクセル)Indirect関数で、ハ...
-
15
EXCELで存在しないシート...
-
16
エクセルでブック内の倍率がバ...
-
17
エクセルの2つのシートを並び...
-
18
Excelでマクロ設定したが反映さ...
-
19
Excel 全シート上のボタンを削...
-
20
DATE関数 4月31日などのあ...
おすすめ情報
公式facebook
公式twitter