[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シートを選択できないようにする』(カズマル)
複数のシートを使って一番最初にあるシートのみに反映させる
ものを作っておりまして、一番最初のシート以外は
いじられると面倒なので選択できないようにすることは
可能ですか?
複数人で使用しておりますので
誰かにいじられて変になると困るもので・・・
すいませんがお知恵をお貸しください。
選択できないように保護を書ける方法や 非表示にするなどは如何でしょう?
(キリキ)(〃⌒o⌒)b
早速のコメント有難うございます。 シートの保護はしてありますが 選択自体出来ない様にしたいのです。 シートの保護で何も出来ないようにはしてあるのですが・・・ すいません、よろしくお願いします。
ツール → 保護 → シートの保護 □ロックされたセル範囲の選択 ↑ ここのチェックを外してOK。
以上で如何でしょう? (キリキ)(〃⌒o⌒)b
非表示にしたいシートを選択(複数選択も可)して メニューの「書式」の「シート」の「表示しない」 で非表示になります。
表示したいときは メニューの「書式」の「シート」の「再表示」で表示したいシートを選択。 こちらは1つずつしかできません。 (やっちん)
うぉぉぉぉぉぉぉぉ!!! 軽くびびっちゃいました。 完璧です。 やっちんさん大変有難うございました。
シートを非表示にしたあとに、誰でも表示することが出来るので
passwordを入力しないとシートを表示できない様にするには、
どうしたら良いでしょうか。
またVBAで非表示のシートを選択してもエラーにならない方法は
どうすればよいでしょうか。
(らいち)
パスワードでも出来るのですが、再表示すらさせないようにしてはどうでしょうか? VBEで対象のシートのVisibleプロパティにxlSheetVeryHiddenを設定すれば 再表示もされません。(もちろん使う人がVBEを扱えれば見えるように出来ます) 再度表示させる場合は同じくVisibleプロパティにxlSheetVisibleを設定。
>またVBAで非表示のシートを選択してもエラーにならない方法はどうすればよいでしょうか。 そもそもVBAで処理を行うのでしたらシートを選択する必要は無いと思います。 Selectionを使わない処理をしてみましょう。 (momo)
詳しい説明は聞かないでください(汗 しかも横槍的ですが。
<シート名隠蔽用> Private Sub シート名隠蔽_Click() ActiveWindow.DisplayWorkbookTabs = False 'シート名が消える Range("B2").Select End Sub
<シート名復活用> Private Sub シート名復活_Click() Dim MyValue As String
MyValue = InputBox("これより先、管理者用パスワードが必要です。", "管理者より") If MyValue = "" Or MyValue <> "1234" Then MsgBox "「入力された管理者用パスワードが間違っています。」", vbCritical Exit Sub End If ActiveWindow.DisplayWorkbookTabs = True 'シート名が現われる Sheets("メニュー (2)").Select Range("B2").Select End Sub
> If MyValue = "" Or MyValue <> "1234" Then VBA起動されちゃったらお手上げだけど。 「"1234"」の1234を好きに変えてパスワードにしちゃってください。
> Sheets("メニュー (2)").Select 「"メニュー (2)"」の メニュー (2)をこのVBAを使うシートのシート名を入れてください。
上記のはシート名復活に使うやつのVBAです。
下記のはシートの保護と保護解除に使うやつのVBAです。
<シート保護用> Private Sub 保護_Click() ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True Range("B2").Select End Sub <シート保護復活用> Private Sub 開放_Click() Dim MyValue As String
MyValue = InputBox("これより先、管理者用パスワードが必要です。", "管理者より") If MyValue = "" Or MyValue <> "1234" Then MsgBox "「入力された管理者用パスワードが間違っています。」", vbCritical Exit Sub End If ActiveSheet.Unprotect Range("B2").Select End Sub
> If MyValue = "" Or MyValue <> "1234" Then VBA起動されちゃったらお手上げだけど。 「"1234"」の1234を好きに変えてパスワードにしちゃってください。
(おせっかい星人)
あ!コマンドボタン作ってそれに割り当ててね。 (おせっかい星人)
シートタブが見えないだけだとCtrl+PageDown(PageUp)の ショートカットキーだけでシートが移動できてしまいますね (トゥルーマン)
トゥルーマンさん いやんwそんなところつついちゃw ま、穴はありまくりだけど エクセルに詳しくない方々がいじくるなら ショートカットキーでシート移動なんて解らないんじゃないかと思ってみたり。 まぁ私がその中の一人だったわけで(苦笑) (おせっかい星人)
早速やってみます。
(らいち)
またVBAで非表示のシートを選択してもエラーにならない方法はどうすればよいでしょうか。
そもそもVBAで処理を行うのでしたらシートを選択する必要は無いと思います。 Selectionを使わない処理をしてみましょう。 (momo)
−−−−−−−
Selectionを使わない方法というのは、どうすればいいんでしょうか・・・
いろいろ試してみましたが、よく分かりませんでした。
今、作成しているVBAは下記の通りです。「タグ」というシートを非表示に
すると、エラーが発生してしまいます。
Private Sub タグ作成_Click()
Dim InPt As Long
Dim SaveName As String Dim wb As Workbook, wkbk As Workbook Set wb = ThisWorkbook InPt = Application.InputBox(prompt:="管理No.を入力", Type:=2) If InPt = False Then Exit Sub Sheets("タグ").Select With wb.ActiveSheet .Range("c3").Value = InPt .Range("B2:C16").Copy End With Set wkbk = Workbooks.Add With wkbk.ActiveSheet .Range("B2").PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False .Range("B2").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False .Columns("A:A").ColumnWidth = 0.5 .Columns("B:B").ColumnWidth = 10 .Columns("C:C").ColumnWidth = 50 End With SaveName = "C:\Documents and Settings\123\デスクトップ\" & InPt & "タグ.xls" ActiveWorkbook.SaveAs Filename:=SaveName, FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False wkbk.Close False Sheets("タグ").Select
Selection.ClearContents Sheets("台帳").Select Set wb = Nothing Set wkbk = Nothing End Sub
たとえば
>Sheets("タグ").Select >With wb.ActiveSheet > .Range("c3").Value = InPt > .Range("B2:C16").Copy >End With
この部分であれば
With wb.Sheets("タグ") .Range("c3").Value = InPt .Range("B2:C16").Copy End With
とすればSelectをしないで記述できます。 非表示のシートをSelectするとActiveに出来ないのでエラーになってしまいます。 (momo)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.