Excel2010で、とあるテンプレートを作っています。
複数人が使用するので、数式が入ったセルを編集できないようにしたいです。
その他に以下の仕様があります。全てを満足する方法はありますか?
<仕様>
①数式が入ったセルを編集されない
②数式が入ったセルを含む、行や列の削除は可能 ←「セルの保護」だとNG
③数式が入ったセルを空白セルにされない ←「データの入力規則」だとNG
<仕様の理由>
①数式の保護、誤入力防止
②多めに数式が入ったセルを作るので、余ったら行ごと削除したい
③deleteボタンで数式を消されないように
条件が色々とありますが、何か良い方法はありますか?
VBAならできるんでしょうか?(当方、VBAに関してはほぼ無知です。。。)
No.3ベストアンサー
- 回答日時:
保護したシートに対し、VBAを使えば可能です。
シート上にボタンを設置し、削除するときは削除する行なり列なりを選択し、そのボタンを押す。
ボタンに実装するのは、アンプロテクト→指定範囲削除→プロテクトとなるコードのみ。
なのでデフォルトでは基本保護状態、削除するときだけVBAにより一瞬保護解除、削除後すぐさま保護、の流れです。
例↓
Sub kesichaubutton()
ActiveSheet.Unprotect
Selection.Delete
ActiveSheet.Protect
End Sub
超絶単純、シンプル。もうほんとこれだけで充分です(ただし、必ず、計算式が入ってない編集してもいいセルはロックがかからないようちゃんと設定するのを忘れずに)。
①上記コードを開発タブ内のVisualBasic→挿入→標準モジュールの順で標準モジュール内に突っ込み、
②ボタンを設置(開発タブ内→挿入にボタンがあるので、それをシート上の適当に邪魔にならない設置したい場所に図を挿入するのと同じ要領で設置)、するとマクロコード選べとポップアップが出てくるので、マクロ名kesichaubuttonを選択したらこのボタンは削除コード呼び出し用ボタンへと早変わりです。
とりあえず質問文から読み取れる分の条件(計算式入セルをとにかくどんな形であれ編集させず、ただし行列削除は例外的に処理)に適った動きはこれで達成できると思いますが、何か違う場合はコレをヒントにVBAに挑戦してみるとよいですよ。
VBAは難しくありません。ほぼ英語です。やりたいことだけも調べていけばどんどん扱えるようになってきますし、汎用性あるので割と色んな事が可能になります。楽しいですよ。
回答ありがとうございます。
VBAの構文も教えていただきありがとうございます。
試してみたところ上手くできました。
マクロを勉強し始めたところでしたので興味深かったです。
VBAを学んでいけば出来ることが増えて楽しそうですね。
No.4
- 回答日時:
追記※No.3の者です
使えてよかったです。
ボタン配置でコード呼び出しを例にしましたが、ショートカットキー(ctrl+alt+D等)で呼び出せるようにもできますので、使いやすさに応じて変えてみてくださいね。この情報化社会ではVBAの学習にコストなんてまずかからないので、ガンガン挑戦していってください。
No.2
- 回答日時:
こんにちは
一番ご希望に近いのは、「数式の入ったセルをロックして、シートの保護をかける」方法だと思いますけれど・・
ご指摘のように、保護されたセルを含む行は削除できません。
ただし、行の書式変更を許可しておくことで、保護されたセルを含む行を非表示にすることは可能です。
(削除はできませんけれど、見た目はほぼ同じになります)
通常機能の範囲内で、ご希望に近いことを実現するなら、このくらいのような気がします。
>VBAならできるんでしょうか?
どのような使い勝手のものなのか不明なので、どのような方法が適切なのかはわかりませんけれど、代替する方法は考えられると思います。
例えば、上記の状態でVBAから行の削除を行うことは可能ですが、その指示をどのようにして行うのかを考える必要があります。
あるいは、全く別の発想で、同じ様な計算を行っているのであれば、数式を設定するのをやめてしまって、関連するセルに値が入力されたら、VBAで計算を行うか、または、数式を設定するといった方法も考えられます。
数式のあるセルを消されたら、VBAで再度数式を設定することも可能です。
(こちらであれば、指示の方法を考える必要もありません)
>当方、VBAに関してはほぼ無知です。。。
VBAで行う場合はそれなりの知識が必要になりますので、ほぼ無知の状態からでは学習コストがそれなりにかかるものと想像します。
回答ありがとうございます。
やはりシートの保護が最適ですかね。
削除するのも見た目だけの問題ですので、非表示 or 保護解除して列削除 すれば済みますし。
測定記録のテンプレートを作ってます。
『特定のセルに数値を入力すると、その値を参照して数式セルで計算結果を出す』みたいなものです。
No.1
- 回答日時:
回答ありがとうございます。
対象セルを含む行を削除したいので、教えていただいた方法だとうまくいきませんでした。
やはりこの方法しかないのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelで数式をそのままコピーしたい どうすればいいですか? 4 2022/09/16 02:16
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Excel(エクセル) エクセルでシート保護のかかり方の違いとセルの非保護の設定 3 2022/08/09 10:02
- Excel(エクセル) Excelについて Excel初心者です。 日報に数字を入力する時、誤った数字を入れると、セルが赤く 6 2023/03/31 17:05
- Excel(エクセル) countif関数について質問 4 2022/06/14 12:11
- Visual Basic(VBA) VBAでセル検索から対象行のセルをコピーする方法を教えてください。 B列に日付、C列からF列に数式が 3 2023/11/02 10:54
- Excel(エクセル) エクセルで条件付き書式を使わずにセルの文字の色を変える方法を教えて下さい 8 2023/07/28 01:15
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
- Excel(エクセル) エクセルで同じ値が連続しているセルに色をつける方法を教えてください。 4 2023/10/05 21:18
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
Excel 大なり小なりを表すとき、 例えば「10以上」なら、>=10 と表せますが、 この10の部
Excel(エクセル)
-
エクセルで列をアルファベットではなく、数字の表示にするメリットって、なんでしょうか?
Excel(エクセル)
-
エクセルのcountifのワイルドカードについて
Excel(エクセル)
-
-
4
Excelでの判別方法
Excel(エクセル)
-
5
excelの不要な行の削除ができない!
Excel(エクセル)
-
6
エクセルで
Excel(エクセル)
-
7
エクセルの表の参照値から円を取って数字で扱えるようにしたい
Excel(エクセル)
-
8
エクセルで2桁から5桁の数字があります。その数字のダブリを解消する方法を教えてください。
Excel(エクセル)
-
9
表示されている人数だけを数えたい!!
Excel(エクセル)
-
10
エクセルの気味悪い不思議
Excel(エクセル)
-
11
余分なEXCELファイルに印刷され、経線が入る
Excel(エクセル)
-
12
エクセルの書式設定について教えてください。
Excel(エクセル)
-
13
Excel関数の先頭に「@」が入っているのは何故?
Excel(エクセル)
-
14
Excelで【1-11】と入力すると【1月11日】になってしまう
Excel(エクセル)
-
15
エクセルで⑤番の操作が分かりません。どういう関数が良いんですか?
Excel(エクセル)
-
16
ExcelでA列をコピーしたいのですがコピー範囲内に空白セルがあるとそこで終わってしまいます。 全て
Excel(エクセル)
-
17
エクセルで比較 かつ 部分一致について
Excel(エクセル)
-
18
“丸(〇/○/◯)”に似た文字…
Excel(エクセル)
-
19
エクセル。計算結果の桁揃えをするにはどうする?
Excel(エクセル)
-
20
データの入力規則 Excelです。 例えば、 C1セルに、 A列のデータ(B列にあいうえお"と入っ"
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル 足して割る
-
【エクセル】IF関数 Aまたは...
-
エクセルで指定したセルのどれ...
-
excelの特定のセルの隣のセル指...
-
Excelでのコメント表示位置
-
Excel2003 の『コメント』の編...
-
excelのCOUNTIF関数で、『範囲=...
-
EXCEL VBA セルに既に入...
-
エクセルで縦に1112223...
-
対象セル内(複数)が埋まった...
-
エクセルのセルの枠を超えて文...
-
セルをクリック⇒そのセルに入力...
-
(Excel)数字記入セルの数値の後...
-
エクセルの一つのセルに複数の...
-
貼り付けで複数セルに貼り付けたい
-
Excelでセルの上下にはみ出る文...
-
エクセル オートフィルタで絞...
-
Excelで数式内の文字色を一部だ...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
【Excel】 セルの色での判断は...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル 足して割る
-
【エクセル】IF関数 Aまたは...
-
エクセルで指定したセルのどれ...
-
Excelで数式内の文字色を一部だ...
-
Excelでのコメント表示位置
-
貼り付けで複数セルに貼り付けたい
-
対象セル内(複数)が埋まった...
-
セルをクリック⇒そのセルに入力...
-
【Excel】 セルの色での判断は...
-
エクセルの一つのセルに複数の...
-
EXCEL VBA セルに既に入...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
エクセル オートフィルタで絞...
-
エクセルのセルの枠を超えて文...
-
excelのCOUNTIF関数で、『範囲=...
-
(Excel)数字記入セルの数値の後...
-
枠に収まらない文字を非表示に...
-
Excel2003 の『コメント』の編...
-
Excel 例A(1+9) のように番地の...
-
複数のセルのいずれかに数字が...
おすすめ情報