[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『注意書きを表示させたい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)
基本 コピペはできます。(内容が見れる常態では) 提示された方法は単純にはコピペはできないでしょう。ということ
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.