スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

エクセルでワークシート・ワークブックを入力不可にする

むかしこんにゃく工房←スポンサーサイト

単に同名で上書きできないようにするだけならできるが、エクセルの全シートを入力すらできないようにする方法は知らなかったのでメモしときます。

大雑把にいえば、全シートを入力不可にするアドインかパーソナルマクロを作るんですが。

今回はアドインでやる手順。

①エクセルを開いてメニューの、「ツール」→「マクロ」→「Visual Basic Editor」を開く。1.png

②メニューの、「挿入」→「標準モジュール」
2.png

③出たエディタに全シートを入力不可にするマクロを記入。
以下のマクロをコピペする。

Sub アドイン()
Dim i As Integer
Dim intProtectCnt As Integer
Dim intUnProtectCnt As Integer
Dim intSyoriFlg As Integer '0:保護 1:解除
Dim intRtn As Integer

'全シートがプロテクトか、アンプロテクトか、バラバラか確認。
For i = 1 To ActiveWorkbook.Sheets.Count
If ActiveWorkbook.Sheets(i).ProtectContents = True Then
intProtectCnt = intProtectCnt + 1
Else
intUnProtectCnt = intUnProtectCnt + 1
End If
Next
If intProtectCnt = 0 Then
intSyoriFlg = 0
ElseIf intUnProtectCnt = 0 Then
intSyoriFlg = 1
Else
intRtn = MsgBox("保護する?" & vbCrLf & "はい:全シート保護" & vbCrLf & "いいえ:全シート保護解除", vbYesNoCancel)
Select Case intRtn
Case vbYes
intSyoriFlg = 0
Case vbNo
intSyoriFlg = 1
Case Else
Exit Sub
End Select
End If

If intSyoriFlg = 0 Then
'全て保護
For i = 1 To ActiveWorkbook.Sheets.Count
ActiveWorkbook.Sheets(i).Protect
Next
Else
'全て保護解除
For i = 1 To ActiveWorkbook.Sheets.Count
ActiveWorkbook.Sheets(i).Unprotect
Next
End If

End Sub



④エクセルで、「名前を付けて保存」→ファイルの種類に「アドイン」を選択。保存場所は変更せずに、ファイル名は適当につけて保存。
4.png



ここで一旦、エクセルを閉じる。←重要。
ブックの保存はしなくていいです。
もう一回、エクセルを開く。




⑤エクセルメニューから、「ツール」→アドイン
5.png

⑥先ほど、保存したアドインにチェックを付ける。
なければ、「参照」ボタンから保存したアドインを選択。

6.png


⑦エクセルのメニューから、「ツール」→「ユーザ設定」
7.png

⑧ツールバーにボタンを作る
「分類」は「マクロ」を選択、「ユーザ設定ボタン」をツールバーにドラッグアンドドロップする。
8.png

⑨マクロ登録
ツールバーに作ったマクロアイコンをクリック。
マクロを単純にコピペしているなら、マクロ名に「アドイン」を入力。
「OK」をクリック。
9.png

以下はツールバーのマクロボタンをクリックするだけで、入力不可と入力可の切り替えができます。
あと、興味あれば、アイコンの絵を変えたりとか・・・絵心ないので割愛しますが。

↓入力しようとすると怒られます。
11.png
スポンサーサイト
プロフィール

syao88

Author:syao88
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
たるいカウンタ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。