[[20200326155308]] 『ブックの共有時のデータの入力規制にて』(未来) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ブックの共有時のデータの入力規制にて』(未来)

ブックの共有がされておりシートの保護がされている状態で
E4セルのでーたの入力規制にて
入力値の種類はリスト
元の値に
=INDIRECT(D4&IF(D4="?@短",1,"")&IF(D4="?A短",1,"")&IF(D4="?@長",1,"")&IF(D4="?A長",1,"")&IF(D4="?@",1,"")&IF(D4="?A",27,""))
となっており、E4セルをリストから選択すると
共有ブックに入力された数式やデータテーブルの配列は、コピーまたは移動できません。
と出てしまい選択できません。
何処をどう直せばよろしいでしょうか?

< 使用 Excel:Excel2010、使用 OS:Windows7 >


すいません
文字化けしていて数式も間違えていました
=INDIRECT(D4&IF(D4="丸短",1,"")&IF(D4="四角短",1,"")&IF(D4="丸長",1,"")&IF(D4="四角長",1,"")&IF(D4="丸",1,"")&IF(D4="四角",1,""))
が正しいです
よろしくお願いします。
(未来) 2020/03/26(木) 16:08

誰かわかる方いませんか?
(未来) 2020/03/30(月) 08:32

 >Excel2010,Windows7
 で
 >E4セルのでーたの入力規
 則で
 >種類はリスト
 >元の値に
 >=INDIRECT(D4&IF(D4="丸短",1,"")&IF(D4="四角短",1,"")&IF(D4="丸長",1,"")&IF(D4="四角長",1,"")&IF(D4="丸",1,"")&IF(D4="四角",1,""))
 ※「名前」は適当に作成
 E4セル 非ロックで
 シートを保護し
 ブックを共有して
 試しましたが
 >共有ブックに入力された数式やデータテーブルの配列は、コピーまたは移動できません。
 というエラーもなく普通にリストから選択できました。

 つまり、問題があるならば↑で説明されてない所に原因があります。

(チオチモリン) 2020/03/30(月) 10:14


ありがとうございます
D4セルに丸短、四角短、丸長、四角長が入力されている場合のみエラーが出るようです。
三角が入っている場合はエラーが出ませんでした。
よろしくお願いします。
(未来) 2020/04/02(木) 23:11

誰かよろしくお願いします
(未来) 2020/04/03(金) 12:46

ここに書いたものには問題がなく、名前定義に何か間違いがあるのでは?
1 という文字を全角半角間違えているとか、スペース文字があるとか…。

そもそも、例えば「D4&IF(D4="丸短",1,"")」の部分だけ取り出して考えると、D4セルに "丸短" と入力されていれば "丸短1" に置き換えており、必ず1が付くというのが意味不明です。 "丸短1" という名前定義を使うとか、そんな面倒な事をせず、名前定義を "丸短" にすれば良いのでは? 1 を付けた定義と付けない定義がある、とかならまだ判りますが、そういう式でもないし…。

D4セルの文字列 = 名前定義名 とすれば、「=INDIRECT(D4)」として使うだけですよね?
(???) 2020/04/03(金) 13:14


お返事ありがとうございます。
名前定義や全角半角間違えはないと思います。
ブックの共有にしないと問題なく使えています。
今回一人だと作業量が凄いとのことで複数人でやりたいとの希望から
ブックの共有にしたところエラーが出てきてしまいました。

1を付けた理由は日にちによってなので1日の例をあげました。

よろしくお願いします。
(未来) 2020/04/03(金) 13:22


  >E4セルをリストから選択すると 
  >共有ブックに入力された数式やデータテーブルの配列は、コピーまたは移動できません。 

  入力規則のリストから選択するだけなのに、
  何故「コピーまたは移動」の警告が出てくるのか腑に落ちないですねぇ。。

  そちらに何か思い当たる節がないですか?
  例えば、マクロを組み込んでいる、とか。

  ※ 未来さん自身がやってなくても、誰か他の人がやったとか。

(半平太) 2020/04/03(金) 13:29


お返事ありがとうございます。

特に誰もいじってはないと思います。
リストから選ぶだけで何をするでもありません。
普段からシートの保護をしていまして、ほかの方はその機能も知らないほど
パソコン素人です。私も素人ですが・・・

よろしくお願いします。
(未来) 2020/04/03(金) 13:45


 そうですか・・

 念のために、共有を解除してから、

  当該シートの「シート見出し」を右クリックすると表れるサブメニュー内の
 「コードの表示」を選択すると、VBエディターが開きますが、

 そこに何かコードが書かれてないかチェックして貰えませんか?

(半平太) 2020/04/03(金) 13:55


シートの方にはコードは何も書かれていません

よろしくお願いします。
(未来) 2020/04/03(金) 15:32


 そうですか・・

 お手数かけて申し訳なかったです。

 ノーアイデアです。 m(__)m

(半平太) 2020/04/03(金) 15:39


前の質問の際は、マクロで他シートから代入していましたが、今回はマクロを使っていないのですか?
ならばブックのファイル名はxlsxですか? xlsmだと、マクロ入っていそうですよ。

名前定義については、ブックをコピーしてから以下のマクロを貼り付け、マクロ入りブックにしてから実行すると、定義一覧をシートに書き出します。 数式で使っている名前定義名と完全一致しているか、セル範囲は正しいか等を確認してみてください。

 Sub test()
    Dim i As Long

    With Sheets.Add(after:=Sheets(Sheets.Count))
        For i = 1 To Names.Count
            .Cells(i, "A").Value = Names(i).Name
            .Cells(i, "B").Value = Names(i).RefersToRange.Address(True, True, xlA1, True)
        Next i
    End With
 End Sub
(???) 2020/04/03(金) 16:57

お返事ありがとうございます。

ブックのファイル名はxlsです。

マクロはある程度入っております。
マクロの記録からので少し弄ったていどのがあります。

 .Cells(i, "B").Value = Names(i).RefersToRange.Address(True, True, xlA1, True)

でエラーがでてしまいました。

ブックの共有をしないと、きちんと使えているのですが名前定義名等が間違えていることも
ありえるのでしょうか?
(未来) 2020/04/03(金) 17:31


名前定義確認用のマクロを使うときは、共有は解除してください。 定義の確認用であり、常用ではないです。
(???) 2020/04/03(金) 17:42

お返事ありがとうございます。

共有は解除してください。

解除しましたがエラーとなってしまいます。
(未来) 2020/04/03(金) 17:54


んー、どんなエラーになるのでしょう? ThisWorkbookに、何か全シートに関係するマクロを書いていませんか? Workbook_SheetActivate とか。 なんか、保護や共有とは関係なく、全く教えてもらっていない部分に問題がある気がしますよ。

あと、シートモジュールではなく、標準モジュールに貼って動かしてみてもらえますか?
それでも駄目なら、B列に出力する部分は消してしまい、名前だけでマクロを完走させてみてください。
(B列には定義している範囲を出力しているので、確認して欲しいのですが)
(???) 2020/04/03(金) 18:31


 >D4セルに丸短、四角短、丸長、四角長が入力されている場合のみエラーが出るようです。
 >三角が入っている場合はエラーが出ませんでした。
 名前定義に問題がありそうですね

 そのうえで
 >複数人でやりたいとの希望から
 >ブックの共有にしたところエラーが出てきてしまいました
 新たに作業を始めた人のPCでの現象なら エラートラップのオプション設定が異なる可能性もあるかも。

(チオチモリン) 2020/04/03(金) 23:40


返事がおそくなりすいません。
名前定義は一致しております。
丸短1、四角短1、丸長1、四角長1、丸1、四角1
全部ありました。
名前定義したセルも確認しました。

> 新たに作業を始めた人のPCでの現象なら エラートラップのオプション設定が異なる可能性もあるかも。
全てのPCでなってしまいます。

よろしくお願いします。
(未来) 2020/04/06(月) 10:20


 1 丸短(エラーの出る)と三角(エラーの出ない)の違い何でしょう?
 2 エラーの出る↓の値は何でしょう?
  Names(i).RefersToRange.Address(True, True, xlA1, True)
 3 そもそも、
 >E4セルをリストから選択
 で ↑のコードが走るのはなぜでしょう?
 4 ↑のエラーメッセージが↓なのですか?
「共有ブックに入力された数式やデータテーブルの配列は、コピーまたは移動できません。」
 〜〜〜〜
 >丸短1、四角短1、丸長1、四角長1、丸1、四角1
 >全部ありました。
 名前定義に問題はないんですね。
 レスからすると 丸短1〜丸短31までありそうですけど。
 Names(i).RefersToRange.Address(True, True, xlA1, True) の i は 1 なのですね。

(チオチモリン) 2020/04/06(月) 10:43


お返事ありがとうございます。

>1 丸短(エラーの出る)と三角(エラーの出ない)の違い何でしょう?

D4セルの値をみてE4セルのリストが変わるようにしています。
丸短等エラーが出る値は丸短1、丸短2と31までリストがあり日付によって
変えたいので1をつけるようにしました。
D4セルにて丸短1としないのはE4セル以外にもD4セルを参照していまして
その時に丸短1と1があると困りましたのでこういう対応にいたしました。
(そちらは問題なく作動しております。)
三角(エラーの出ない)はE4セルの元の値の計算式の丸短等以外の値は全て作動しております。
三角等のリストは1つしかないです。

>2 エラーの出る↓の値は何でしょう?
>Names(i).RefersToRange.Address(True, True, xlA1, True)

これはどこに出ている値でしょうか?
素人ですいません。

>3 そもそも、
>>E4セルをリストから選択
>で ↑のコードが走るのはなぜでしょう?

D4セルを見てE4セルのリストを変更したいのです。

>4 ↑のエラーメッセージが↓なのですか?
>「共有ブックに入力された数式やデータテーブルの配列は、コピーまたは移動できません。」

そうです。
このメッセージが出て、選択した値がE4セルに反映されません。

よろしくお願いします。
(未来) 2020/04/06(月) 11:37


試行錯誤してみましたが
「共有ブックに入力された数式やデータテーブルの配列は、コピーまたは移動できません。」
というエラーが再現できません。

 >1 丸短(エラーの出る)と三角(エラーの出ない)の違い何でしょう?
=INDIRECT("三角")は問題ないが
=INDIRECT("丸短1")は
  共有ブックではエラーになるが
 非共有ブックでは問題ないということですね

で、共有ブックではE4はリストは表示されるが、選択できない。

〜〜〜〜〜〜〜〜〜 マクロではないような気がしてきていますが
配列数式が関係しているのかも知れませんが、現象を再現できません。
心当たりはありませんか?
〜〜〜〜〜〜〜〜〜 ↓は忘れてください。勘違いでした。
 2 エラーの出る↓の値は何でしょう?
  Names(i).RefersToRange.Address(True, True, xlA1, True)
 3 そもそも、
 >E4セルをリストから選択
 で ↑のコードが走るのはなぜでしょう?  
〜〜〜〜〜〜 但し
丸短2〜丸短31のような名前定義があるのか?
あるならば、それは問題ないのか? は気になります。

(チオチモリン) 2020/04/06(月) 14:49


お返事ありがとうございます

>=INDIRECT("三角")は問題ないが
>=INDIRECT("丸短1")は
>共有ブックではエラーになるが
>非共有ブックでは問題ないということですね

単純に=INDIRECT("三角")と=INDIRECT("丸短1")をE4セルにいれて検証したところ
=INDIRECT("三角")は問題ないが
=INDIRECT("丸短1")はエラーになります。
これは名前のエラーなのでしょうか?

但し共有ブックではエラーで非共有ブックでは問題ないです。

>丸短2〜丸短31のような名前定義があるのか?
>あるならば、それは問題ないのか? は気になります。

丸短2〜丸短31はあり、そちらも同じエラーがでます。

よろしくお願いします。
(未来) 2020/04/06(月) 16:00


名前定義の問題であれば、存在しない名前で例えば
=INDIRECT("六角32") として同じエラーになるか試されてみては?

同じエラーになるなら、既出ですが
>1 という文字を全角半角間違えているとか、スペース文字があるとか…。
>(???) 2020/04/03(金) 13:14
を確認されてみては?

(チオチモリン) 2020/04/06(月) 17:08


お返事ありがとうございます。

>=INDIRECT("六角32")として同じエラーになるか試されてみては?

試してみましたが選ぶことができませんでした。

>1 という文字を全角半角間違えているとか、スペース文字があるとか…。

確認しました。再度名前定義をしましたがやはりエラーがでてしまいました。

よろしくお願いします。
(未来) 2020/04/06(月) 17:24


では、「丸短1」という名前の定義内容に問題がありそうです。
その確認は当方ではできませんので、じっくり確認してください。
(チオチモリン) 2020/04/06(月) 17:35

お返事ありがとうございます。

やはり名前の定義でしょうか?

ただブックの共有をしないと問題なく選択でき、ブックの共有をするとエラーがでるので

その差がわかればと思います。
(未来) 2020/04/06(月) 17:48


実験として、「三角」で設定しているセル範囲文字列をコピーし、「丸短1」のセル範囲文字列に上書きするとどうなるでしょう?
つまり、名前定義名が悪いのか、定義が参照しているセル範囲が悪いかの切り分けです。

そして、どんなエラーが出るのか、相変わらず教えてもらっていません。 名前定義ができないのか、定義できるけどセルの選択肢を切り替えようとすると何かメッセージが表示されるのか。 回答者側は皆、現象が再現できていないので、貴方自身が何か見落としている点に気づいてもらうしかない状態です。
(???) 2020/04/06(月) 18:03


数式の場合は、可能であれば提示してください
(チオチモリン) 2020/04/06(月) 18:08

 あ、エラーが再現できた。

 A1:A5 を選択
 数式バーに =B1:B5 と入力、shift+ctrl+enter で決定。
 続けて、名前ボックスに名前を入力。(例として”配列”としてみる)

 この時点で A1:A5 に配列数式 {=B1:B5} 、”配列”という名前が付いている。

 C1 に入力規則を設定。
 入力値の種類 : リスト
 元の値       : =INDIRECT("配列")

 共有ブックとして保存。

 その後、リストを選択すると、
 >共有ブックに入力された数式やデータテーブルの配列は、コピーまたは移動できません。
 と表示される。

 ・・・とは言ったものの、ここに書かれているのを試しただけなのですが。
https://translate.google.com/translate?hl=ja&sl=en&u=https://www.excelforum.com/excel-general/941942-sharing-workbook-with-array-formulas.html&prev=search

 配列数式なんて使ってないよ、と言う場合は別の回答をお待ちください。
(2u) 2020/04/06(月) 19:16

お返事ありがとうございます。

エラーは「共有ブックに入力された数式やデータテーブルの配列は、コピーまたは移動できません。 」
が出てくるだけです。

丸短1等の計算式が配列数式です。

そうなるとブックの共有は難しいのでしょか?

(未来) 2020/04/06(月) 22:26


 こちらには書かなかったことで、リンク先には書いていることですが、

 > 配列数式を通常の数式に変換してみてください

 だそうです。

 > MicrosoftのWebサイトで提供されている回避策
 は探し方が悪いのか、ページが残っていないのか分かりませんが、
 見つけることが出来ませんでした。

 変換できるかどうかは実際の配列数式が提示されないとなんとも。
 配列数式を提示して、普通の数式に変換できるか質問してみるのも1つの手だと思います。

 それか、「入力規則の元の値」の指定範囲に配列数式があるとだめなようなので、
 エラー例を次のようにしてみます。

 A7:A11 を選択
 数式バーに =B1:B5 と入力、shift+ctrl+enter で決定。

 A1 に =A7 と入力。
 オートフィルで A5 まで入力。

 続けて、名前ボックスに名前を入力。(例として”配列”としてみる)
 この時点で

  A7:A11 に配列数式 {=B1:B5}

  A1 =A7
  A2 =A8
  A3 =A9
  A4 =A10
  A5 =A11

 A1:A5 に”配列”という名前が付いている。
 C1 に入力規則を設定。
 入力値の種類 : リスト
 元の値       : =INDIRECT("配列")

 要は配列数式の結果を通常数式で参照して、
 入力規則の元の値には通常数式が入った範囲を指定するという方法です。

 どちらがいいかは・・・
 変換できるか、出来たとして書き換える手間がどれほどかかるか、
 間に作業範囲を用意するほうが前の2つに比べて楽かどうか
 そもそも作業範囲が用意できるか
 という考え方や作業量などの問題になるでしょう。

 他の誰かがいい方法を思いつくかもしれませんしね。
(2u) 2020/04/06(月) 23:27

お返事ありがとうございます。

コロナ騒ぎで自宅待機になってしまいましたので確認ができないのですが
配列が原因となると対応できるかと思います。

ありがとうございました。
(未来) 2020/04/07(火) 12:26


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.