- 締切済み
マクロ登録を初めて行いたいのですが 分からないので 教えてください。E
マクロ登録を初めて行いたいのですが 分からないので 教えてください。Excel 97-2003 です。図面を作成しました。同じような物を7列作ってます。セル=VLOOKUP(INDEX(M26:M66-1,3,1),M26:N66,2)-VLOOKUP(INDEX(M26:M66,3,1),M26:N66,2) コレをたくさん作ってますが ブック自体をマクロ登録して セルの数式を非表示化したいのです。 枠や線や数式は入力規則を使って 1つのセルに数字1を入力したら 消えるようにしてます。 ただその指定をしなければ 数式が見えます。 非表示にして保護をかければ 出来ますが 保護をかければ 図面の添付や線等の記載を解除しなければ できません。 保護を無くして セルの数式を さわれないようにして 図面も書きたいので マクロ登録をしたいのですが どのようにすれば 良いのでしょうか? マクロ自体 よくwかりませんので 分かりやすく 教えていただければ 幸いです。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
#2のimogasiさんが、書かれてしまいましたが、私もご質問が分かってはいません。 せっかく、#1のお礼の中で書かれていたけれとも、要領を得ないのです。 最初に >Excel 97-2003 というのは、フォーマット(BIFF7)のことですが、97を利用しているのか、それとも、2007を利用しているのか、良く分かりません。バージョンによって回答が変わるはずです。全体の話の流れからすると、Excel 2003 以上ではないような気がします。そうしないと話が矛盾してくるからです。 >枠や線や数式は入力規則を使って 1つのセルに数字1を入力したら >消えるようにしてます。 [入力規則]で、枠や線や数式は消えるのですか?[条件書式]ではないのでしょうか? どうにも、文章が、良く理解できないのです。 >[数式]の保護をかければ図面の添付や線等の記載を解除しなければできません。 >図面も書きたい [入力規則]で数式は消えると書かれているのに、数式に保護を掛けて、数式を見えないようにするということはどういうことか分かりません。書式の数式を見えないようにするという設定をして、保護すると、オートシェイプや書式の罫線もロックされてしまうということでしょうが、これは、バージョンに依存しています。そうすると、VBAのコードが変わってしまいます。一度、数式を見えないようにするプロシージャは考えてみたものの、バージョンがわからないので、もしかしたら出来ないかもしれません。 本当は、枠や線や数式は消すようにするなら、それらは、全部、マクロで設計したほうが早いのです。取り分けて、ひとつだけとか言われても、上手くいかないように思うのです。それから、数式自体も、かなり特殊な内容です。配列数式を使っていますが、多用すると負担が大きくなります。 INDEX(M26:M66-1,3,1) なぜ、-1 をセル範囲に入れる必要があるのでしょう。 INDEX(M26:M66,3,1)-1 にしても同じことのはずです。そうすれば、配列数式ではなくなります。
- keithin
- ベストアンサー率66% (5278/7941)
あなたにもっと実力(と説明力も)が備わった暁には,もっと色々試行錯誤もできましょう。それまではモノゴトの優先順位をよく検討して,出来ないことは諦めてください。 最優先:図形や線を操作したい → 従ってシートの保護は使えません。確定事項です。 → 従って,数式を「表示しない」の機能も使えません。これも確定事項です。 第二優先:CJ1の値が1以外の時に 全てが入力できて,CJ1が1の時には セルの色や入力値が非表示とできて 提出出来るように 変更前のマクロ: if range("A1") = "OUT" then exit sub 変更後:この一行に差し替える if range("CJ1") <> 1 then exit sub 第三優先:(数式セルは どんなときも非表示として 保護もして) → これは諦めです。 数式バーを隠すといった手が無いではありませんが,あまり変に手を入れるのは現状ではお薦めしません。 どうしても諦める訳にはいかない強固に困っている理由があるようでしたら,状況を添えて別途ご相談を投稿し,その目的に照らして代替案のアイデアを募集してみるのが良いと思います。
- imogasi
- ベストアンサー率27% (4737/17069)
質問は何をしたい質問ですか。 マクロ登録の登録とは? マクロ(VBA)を作成したいということですか。 >マクロ登録して セルの数式を非表示化したいのです マクロ(VBA)の利用と、数式を非表示化したいのです、は必ず結びつくものではないでしょう。 だから唐突にマクロを出してきても意味がわからない。 Googleででも「エクセル 数式 非表示」で照会すれば、沢山記事が出ます。 例えば http://kokoro.kir.jp/excel/hogo3.html ーー 関数式でやる処理をVBAロジックでやる手もあります。 (1)エクセルのシートの関数に極く近い形をしたWorkShhetFunction.・・も使えるかもしれません。 (2)プログラム的な処理ロジックでやる手もあります。 ーー マクロも見られたくないとかなら Googleで「エクセル ブック マクロ 残さない」などで照会してみたら。
- keithin
- ベストアンサー率66% (5278/7941)
ツールメニューのマクロのセキュリティを中にしてエクセルを再起動する ブックを開く シートを開く シート名タブを右クリックしてコードの表示を選ぶ 現れたシートに下記のマクロをコピー貼り付ける private sub worksheet_change(byval Target as excel.range) if range("A1") = "OUT" then exit sub application.enableevents = false application.undo application.enableevents = true end sub ファイルメニューから終了してエクセルに戻る シートは保護「しない」で使う。 式を消したりイジると自動で元に戻る。 図形や書式は普通に作業できる。 (仮に)A1にOUTと記入しておくと,作動しません。
お礼
早速 ありがとうございます。本当に初心者でもマクロを使えそうです^^。ありがとうございます。今後勉強を していきたいと思います。色々教えていただければ 幸いです。 今回は かなり 嬉しく安心してます。本当にたすかります。 式など言われるように安心できます。 まだ、教えていただければ たすかります。ご迷惑おかけしますが。。。 普通にできて保護されるのですが セルの数式が やはり数式バーで表示されます。 其れも表示出来ないようにしたいのです。 以下、私の今回作ったもの J27~J65に 先の =VLOOKUP(INDEX(M26:M66-1,3,1),M26:N66,2)-VLOOKUP(INDEX(M26:M66,3,1),M26:N66,2) このような式を入れて計算させてます。 参照入力は INDEX がM26~M65 で 数値入力が N26~N65 です。 N26~N65に入力した数値を インデックスで 横に数値をいれて 数値順に差し引き値を 数式セルの J27~J65 に反映させてます。 コレは入力値間の差を出す 電柱の離隔値を作ってます。 コレを7列作って 図面にしてます^^; 他のセルには 言葉や色。罫線色等 を 入れてます。 数式やインデックス・入力値・色等は CJ1のセルに 数値の1を 入力することで 入力規則で 消すようにしてます。 提出時・印刷時に 不要な物を消すようにしてます。 コレくらいがせいいぱで。。。。 この全てを 数式のみを図面作成時に見えないよう&消えないようにして 入力等は 自由に出来るように 出来ませんでしょうか? 先のは 感動しました^^。 ただ 分からないだけに OUTを 入れないと 他のセルもいろえないようです。 コレを利用して CJ1の値が1以外の時に 全てが入力できて (数式セルは どんなときも非表示として 保護もして) CJ1が1の時には セルの色や入力値が非表示とできて 提出出来るように。 数式以外 図や他のセルは いろえると言う 物を作れませんでしょうか^^; 説明が 悪くて すみません。 いつだって 数式が 見えないように 保護出来るようにできて 提出時にのみ 入力規則の 枠線・色・数値参照入力のみが 消えると言う物が 出来れば 幸いです。 お手数おかけします。 よろしく お願いいたします。
補足
セルのロック 非表示は設定してます。 シートの保護をかけると 図や線がいろえないので シートの保護なしで やりたいです。 お願いします。