『注意書きを表示させたいorコピーをできなくしたい』(はるです) お世話様です。 A科・B科・C科それぞれの職員の行動表を入力規則で、作っています。 各科は一部同じ行動(「休み」など)はあっても、ほとんどが全く違う行動ですので、各々に範囲指定をしています。 ですが、上司が入力した際、別の科の人と行動が同じ場合、コピー&ペーストして作成してしまうようです。 大した作業ではありませんが、その都度、データを直さなくてはならないので、そうしないよう注意書きを表示させたいと思います。 コメントで作成すると、常時使う時に邪魔で、消してしまうかな、と思い、方法を探しています。 ファイルを開いた際に1度、注意書きを表示させる方法はありますか? 若しくは、セルをコピーできなくすれば、いいかと考えたのですが、そのような方法はありますか? よろしくお願いします。 ---- どこかにA科・B科・C科の区別が入力されていれば、入力規則にINDIRECT関数を使うことで、 コピペも問題なくなるようにできると思います。 例えばこんな表だとして。 F〜H列に入力規則のデータを入力し、F1からH4を選択してメニューバーから 挿入>名前>作成 と進んで 上端行のみチェックをつけてOK。 1行目に各科名を入力してあるとして、A3からD5を選択して データ>入力規則 入力値の種類をリスト、 元の値に =INDIRECT(A$1) と入力してOK。 A B C D E F G H 1 A科 B科 C科 A科 A科 B科 C科 2 佐藤 鈴木 田中 加藤 休み 休み 休み 3 休み 行動C-2 行動A-1 行動B-1 行動C-1 4 行動B-1 行動A-2 行動B-2 行動C-2 5 行動A-1 (かなれっと) ---- 一応補足で。 ◇ファイルを開いた際に注意書きを表示させる    Alt+F11キーでVBEを起動。左側のプロジェクトのThisWorkbookをダブルクリック。   右側に開いた白い部分に下をコピペ。VBEのウィンドウを閉じます。    Private Sub Workbook_Open()      MsgBox ("コピーペーストしないでください!")     End Sub 保存していったんファイルを閉じ、再度開いてみてください。   とはいえ、やっちゃった!には対応できません。。。 ◇コピーをできなくしたい   これは、できないんじゃないかなぁ^^;   セルの値は変えたいワケなので、保護じゃダメですしね。。。 そんなわけで、入力規則の設定を見直す案を提案したのです〜 (かなれっと) ---- シートモジュールへ Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, Columns("k")) Is Nothing Then Application.CutCopyMode = False End If End Sub とかでできませんか? セキューリティが「高」とかマクロを作動させない環境では無意味ですけど。 (seiya) ---- あ、そうかぁ、、、 ちょっと勘違いしてました^^; コピペをできなくしたい! はseiyaさんご提示の方法でできるので、前言撤回します(*ノノ) ごめんなさい。 でもって、かなれっとの表でいけば、   If Not Intersect(Target, Columns("k")) Is Nothing Then を   If Not Intersect(Target, Columns("a:d")) Is Nothing Then にすればいいわけですね^^ (かなれっと) ---- ご回答ありがとうございます。 かなれっとさん 1ページに   A B  C D E F  G H I J     K     L        α β       α β 1   佐藤       青田     A科    B科    C科 2   加藤       木田     休み    休み    休み 3 重 伊藤    B  松田     出張    出張    出張 4 役 武藤    科  坂田     行動A-1   行動B-1 行動C-1 5   後藤       新田     行動A-2   行動B-2  行動C-2 6                   行動A-3 行動B-3 行動C-3 7   榎本       矢野     行動A-4   行動B-4  行動C-4 8   井本       大野     行動A-5   行動B-5 行動C-5 9 A 坂本    C  佐野     行動A-6   行動B-6   行動C-6 10 科 吉本    科  河野         11   松本       田野                        というように並んでいて、行動は名前の横に時間ごとに表示します。 重役はA科の一部を抜粋して使用しています。 =INDIRECT(A$1)  の式で、A列とC列それぞれで行固定したのですが、試したところ、そのままコピーされてしまいました seiyaさんのはどこに入れればいいのかもわからず、試せません… せっかく教えてくださったのに、申し訳ありません><。     (はるです) ---- ご本人と衝突^^; でも、ちょぃと時間がないのでそのままUP。だいたいの意味は通じるかな?? 上記の表で入力規則を設定したセルはどこですか? G〜I列がリストの元の値ですよね。。。 C列F列かなぁ? でもって、A1からA5が結合セルですかね。。。 各科ごと別の列を使うようにできれば結合セルでも =INDIRECT(A$1) と結合セルの左上を指定すればOKのハズです。 ただし、重役用のリストも用意しないとダメです。 結合を解いて、A列C列に各人の所属科を入力する、といった対処ができるなら =INDIRECT(A1) でどうでしょう。 この場合も重役用のリストの用意が必要です。 seiyaさんのコードは、シートのタブを右クリック。コードの表示で出てきたウィンドウの右側の大きな白い部分 に貼り付けて、ウィンドウを閉じればOK。 (かなれっと)  ---- かなれっとさん CDGH列に入力規則が設定されています。 A1〜A5、A7〜A11、E1〜E5、E7〜E11が結合セルです。   A B     C   D   E F  G H I J     K     L 1   佐藤  休み  出張     青田     A科    B科    C科 2   加藤             木田     休み    休み    休み 3 重 伊藤          B  松田     出張    出張    出張 4 役 武藤          科  坂田     行動A-1   行動B-1 行動C-1 5   後藤             新田     行動A-2   行動B-2  行動C-2 6                         行動A-3 行動B-3 行動C-3 7   榎本             矢野     行動A-4   行動B-4  行動C-4 8   井本 行動A-1 行動A-2    大野     行動A-5   行動B-5 行動C-5 9 A 坂本          C  佐野     行動A-6   行動B-6   行動C-6 10 科 吉本          科  河野         11   松本             田野                         「INDIRECT(A$1)」という関数がわからないのですが、「=INDIRECT(A$1+E$1)」にしたところ、エラーでした。 seiyaさんの方も試してみたのですが、まだコピーができました。 おそらく「If Not Intersect(Target, Columns("ココ")) Is Nothing Then」の入力が違うとは思うのですが… 恐縮ですが、どのように入力すればよいのか、教えていただけますか?   (はるです) ---- 名前の定義を使います。 挿入>名前>定義で 名前を 行動リスト 参照範囲を =OFFSET(Sheet1!$J$1,1,INT((ROW()-1)/6)+INT((COLUMN()-1)/4)*2,8) でOK 入力規則を設定したいセルを選択して、データ>入力規則> 種類を リスト 元の値 =行動リスト でOK 重役列も追加してください。 [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [ 1] 重役 佐藤 休み 出張 B科 青田 重役 A科 B科 C科 [ 2] 加藤 木田 休み 休み 休み 休み [ 3] 伊藤 出張 松田 行動B-2 出張 出張 出張 出張 [ 4] 武藤 坂田 行動A-1 行動A-1 行動B-1 行動C-1 [ 5] 後藤 新田 行動A-2 行動A-2 行動B-2 行動C-2 [ 6] 行動A-3 行動A-3 行動B-3 行動C-3 [ 7] A科 榎本 C科 矢野 行動A-4 行動A-4 行動B-4 行動C-4 [ 8] 井本 行動A-1 行動A-2 大野 行動C-2 行動A-5 行動A-5 行動B-5 行動C-5 [ 9] 坂本 佐野 行動A-6 行動A-6 行動B-6 行動C-6 [10] 吉本 出張 河野 [11] 松本 田野 (川野鮎太郎) ---- > seiyaさんの方も試してみたのですが、まだコピーができました。 > おそらく「If Not Intersect(Target, Columns("ココ")) Is Nothing Then」の入力が違うとは思うのですが… If Not Intersect(Target, Range("A1:A5,A7:A11,E1:E5,E7:E11")) Is Nothing Then で試してください。 (seiya) ---- 私なら、 “データ”=>“入力規則”=>“入力時メッセージ”タブ を選択して、 “タイトル”に「注意」、“メッセージ”に「コピー&ペーストしないでね」 とでも記載するでしょうか。 (他の方のように難しいことはできないので・・・) (名前はまだない) ---- seiyaさんのは、 If Not Intersect(Target, Range("B1:D5,B7:D11,F1:H5,F7:H11")) Is Nothing Then でしょうか。 (川野鮎太郎) ---- 川野鮎太郎さん そうですね... > A1〜A5、A7〜A11、E1〜E5、E7〜E11が結合セルです。 単純にこれだけ見ていました。 (seiya) ---- みなさんありがとうございます。 seiyaさんの方法で、貼り付けができなくなりました。ありがとうございました! もう一つご提案いただいてる方も、試してみたいのですが 「元の値」に、 =OFFSET(Sheet1!$J$1,1,INT((ROW()-1)/6)+INT((COLUMN()-1)/4)*2,8) というのを入力しましたが、ドロップダウンすると文字が表示されず空欄?しかでてきませんでした。 =OFFSET(Sheet1!$J$1     … これは行動リストの左端のセルを選択しました ,1,   … そのまま入力 「1」 INT((ROW()-1)/6)+INT((COLUMN()-1)/4)*2     …実際の表は行が4、列が18(科名含む)ですが、直すところはありますか? ,8)   … そのまま入力 「8」 どこかで各科(A列やE列)を分類するような表示を入れるのでしょうか? 時間をかけて考えてはみたんですが、結局答えが出ず… ご指南お願いします><。    (はるです) ---- >これは行動リストの左端のセルを選択しました >実際の表は行が4、列が18(科名含む)ですが、直すところはありますか? と言う事ですが、実際はどうなっているのか  行動リストが有る シート名、セル番地、範囲 等 書いてみられてはどうでしょう。  (実際は行が18列が4・・・でしょうか?) >CDGH列に入力規則が設定されています。 >A1〜A5、A7〜A11、E1〜E5、E7〜E11が結合セルです。 この範囲に変わりは無いのですよね? (HANA) ---- HANAさん すみません。 >CDGH列に入力規則が設定されています。 >A1〜A5、A7〜A11、E1〜E5、E7〜E11が結合セル というのは、こちらに表示した表への説明でした。 実際の表の行動リストはS6〜V23です。    (はるです) ---- ん?済みませんが、範囲の名前の確認をさせて下さい。 このシートには二つの表が有ると思います。 川野鮎太郎さんの書いて居られるセル番地だと  A1:H11 各人が選ぶ部分  J1:M9  各人が選べるリストの候補 それで「行動リスト」ってのは A1:H11に 相当する表の部分の事ですか? それが、S6:V23まで有って・・・ どこが結合されているのですか? また、もう一つの表はどこにあるのですか? (HANA) ---- 基本 コピペはできます。(内容が見れる常態では) 提示された方法は単純にはコピペはできないでしょう。ということ