こんにちは。
Excel2007を使用しています。
作成した資料は、Excel2003など書式の組み合わせ上限がある
ソフトを使用する人にも共有するため、
書式の上限(約4000)に達していないかのチェックをしたいと
考えています。
Excel2003までであれば下記方法でできるようなのですが、
私の手元にあるOfficeは2007です。
下記以外に、書式数をカウントする方法はないでしょうか?
http://okwave.jp/qa3768586.html
どうぞよろしくお願いします。
No.3ベストアンサー
- 回答日時:
補足と訂正
Excel 2007 の書式の上限は、64,000 個だそうです。
http://office.microsoft.com/ja-jp/excel/HA100778 …
「アプリケーションとして、ブックにデータをレコードして、カウントしている部分はあるかと思いますが、それは、VBAでは分からないと思います。」
前述のVBAで取れないというのは、私の間違いでした。しかし、Biffファイルをバイナリでとって、そこから必要な箇所を抜き出すということで、VBAでも可能のようです。File Format も公開されていますから、そこからバイナリで勘定することが可能のようです。ただ、私の趣旨とは違いますので、必要ならインターネット検索でお探しください。
File Format
http://www.microsoft.com/interop/docs/OfficeBina …
以下は、直接の回答の趣旨とは違いますが、かなり昔に書いた私のログです。一部、前述と重複してしまいます。私の考え方は、以下の説明でお分かりいただけるように思うからです。
マイクロソフトのサポートにある、4,000個の書式の意味ですが、シートに対する累積的な書式などの組合せの数です。
ひとつのセルと別のセルが、まったく同一の書式の組合せなら、同じ書式ですが、その書式のひとつが違えば、別の書式になってしまいます。
例えば、マイクロソフトのサポートの文章を参考にして、計算してみます。
括弧内は、その選択の「それぞれの書式設定の種類」です。
1. 文字設定 (フォント、フォント サイズ、斜体、太字、下線など) (3)
-デフォルトは除きます
2. 罫線 (位置、太さ、色など) (3)
3. セル パターン (2)
4. 数値の表示形式 (3)
(5. 配置 (2)) -デフォルト
(6. セルの保護 (1)) -デフォルト
7. ユーザー書式 (2)
デフォルトは除いて、「それぞれの書式設定の種類」の中で、ユーザー書式以外は、重複を許して選ぶことが出来ます。
COMBIN というのは、COMBINATION(組合せ)のことです。
n個の中から、r個を重複を許して取り出す組合せは、COMBIN(n+r-1,r) で、NO.7以外は、以下のような式になります。
NO.1 =COMBIN (5,3)
NO.2 =COMBIN (5,3)
NO.3 =COMBIN (3,2)
NO.4 =COMBIN (5,2)
NO.7 =COMBIN (2,1)
-----------------
=PRODUCT(NO.1 : NO.7)
PRODUCT というのは、NO.1 × NO.2 ×……ということです。
とすると、6,000個 の組合せになります。つまり、代表的な書式でも、6,000種類もあって、そこから抽出するわけです。確かに、4,000個までが上限ですと、ユーザー選択に制限が加えられることは間違いないようです。(書式の種類を積み上げで、その数を出すということはできないことはお分かりになると思います。)
つまり、これらのそれぞれの書式設定を、使用しているセルの範囲に対して、別々に独自に使用することを避けて、なるべく統一した書式にしてあげることで、「セルの書式が多すぎる」という問題を避けることが出来るわけです。
だから、具体的に、デフォルトなり、元の設定(書式-スタイル)自体で、例えば、桁区切りなどに設定してあげれば、その数を減らせることになるわけです。
なお、この計算は、Excel 2007には当てはまらないことではあるのですが、いくら、上限が64,000になったとしても、色の選択肢が増えましたから、使い方によっては、すぐに上限に届いてしまいます。やはり、上限までにいくつあるかというよりも、使いこなしの問題には変わらないように思っています。
No.2
- 回答日時:
こんにちは。
前回、回答した者として、書かせていただきます。
まず、Excel2007 とExcel2003 とは、そのメモリの分散や回避に対する使い方が違います。
上限というよりは、本質的には、それは表示に使われるメモリの割り振りだと思います。それは、Excel2003までのものです。私は、VBAで主に回答している者ですが、一旦、上限まで昇って、その差を残り分だという考え方で、VBAのコードを書いたところで、それは本質的に意味がありません。コードが間違いだとは言っていませんが、実際とは違います。
本来は、「表示形式を追加できません」のエラーメッセージに対するものです。
「セルを、それぞれ異なる色で塗り潰す」「フォントを太字にする」「罫線を引く」から、それぞれの数だけということではないのです。単独で、それぞれ使えば、Excel2003まででは、確かに数は出せます。
しかし、私は、前回の質問では詳しく回答していませんが、その書式等の設定の数え方は、単純ではなく、複合的に絡み合うので、思った以上に、その数を使ってしまう旨を書きました。つまり、色塗りと罫線があるとすれば、その色塗りと罫線の組み合わせを一つとします。同じ色塗りでも、それが二つも三つにもなるわけです。
ですから、前回の掲示されたVBAでは、現在の書式設定から先の積み上げで、それぞれは数えることは可能でも、実際のユーザーによる設定は、組み合わせですから、予測はしがたいものだと思うのです。まず、使い方の要領を理解することです。
私は、下位バージョンでも、本質的に、VBAでは無理だと思います。ワークシートの問題は、ワークシートの問題です。私の回答は、マイクロソフト側は、常識的な使用法に対して、エラーはでないという、根底で発言していますし、また、その程度のソフトウェアの信頼性がなくて使えるものではないように考えています。それを、性能の上限までぎりぎりで使いたいという使用法やコンセプトは、あまり深入りはしたくないので、詳しくは書きませんでした。
ここの、ご質問者さんの中には、時々、そういう方はいますから、私は、その質問自体を否定するわけではありません。
そのメッセージの問題自体の解決方法は、マイクロソフトで出ているわけですから、マイクロソフト側のサポートを、お読みください。
http://support.microsoft.com/kb/213904/ja
Excel でエラー メッセージ "表示形式を追加できません" が表示される
[ほとんどの場合、単一ブックに対する書式の組み合わせの上限は約 4,000 で十分です。この問題は、異なる書式設定を使用する多数のワークシートがブックに含まれているか、多数のセルすべてに異なる書式が設定されてる場合に生じる傾向があります]
(私の解釈としては、その書式等の設定は、まとめてすることで、後付けで、個々の書式等の設定をしないことです。どうも、Excelは、同じ設定でも、罫線などは、なぜか、後付けすると別に数えるようです。)
確かに、Excelの実質的な上限というのは、ここかしこにあります。セルの文字数、ワークシートの数など、論理的限界のほぼ10分の1ではないか、と推測する上限に出会うことがあります。Excel2003までは、それを、それぞれに振り分けして、どうやら分散・回避しないようです。それは、Excel 2007とは考え方が違います。
しかしながら、その上限を知るということよりも、それにまつわる部分は、ユーザーの使用方法に問題があるように思います。
なお、おそらく、アプリケーションとして、ブックにデータをレコードして、カウントしている部分はあるかと思いますが、それは、VBAでは分からないと思います。
No.1
- 回答日時:
2007で動作確認しましたか?
自分でVBAを勉強しましたか?
以上
この回答への補足
私の投稿にも説明不足がありましたので、
こちらで補足させていただきます。
2007で動作確認してできませんでしたので投稿しています。
また、必ずしもVBAで解決しようとはしていませんが、
検索して見つかった近い資料はVBAでした。
(貼りつけさせていただいたURLのポイントが付与されている
投稿を参照ください)
Excelの単純な機能として探していました
VBAでしか解決できないのであれば、例えば、もし下記記載のどこを
どのように変更すれば実現可能なのかを知りたいです。
ただし、エラーを検出してハンドリング(?)する仕組み
のようなのでエラーが出ない(?)Excel2007ではどのように
考えればよいか?からが不明です。
http://okwave.jp/qa3768586.html
Excel2007の何らかの機能で書式数のカウントを
できるのであればその方法を知りたいです。
(自身でソフトのヘルプやGoogleで探したところ
見つかりませんでした)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで、空白を表示したい
-
エクセルで文字が白くなる
-
エクセルで文字を含む式に、カ...
-
エクセルで、時間 0:00を表示...
-
EXCELの散布図で日付が1900年に...
-
エクセル(2003) 「1900/1/0...
-
エクセル条件付書式で指定の時...
-
アクセスで#エラーを表示させ...
-
INDESIGNで空改行などのマーク...
-
Excelのセルでの配置です。
-
「countif」関数の結果の後に文字
-
小数点以下の数字だけ小さいフ...
-
エクセルの書式設定に時間(0:0...
-
エクセルの表示が ‐(ハイフン...
-
エクセルで200行を再表示
-
エクセルで上付き,下付き文字...
-
Access ¥マークを表示しない
-
エクセルでゼロ「0」が「-」に表示
-
Excelのテーブルでセルの書式設...
-
Excelで勝手に小数点以下が増える
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで文字を含む式に、カ...
-
Excelで、空白を表示したい
-
エクセルで文字が白くなる
-
エクセルで、時間 0:00を表示...
-
アクセスで#エラーを表示させ...
-
エクセル条件付書式で指定の時...
-
EXCELの散布図で日付が1900年に...
-
Excelのテーブルでセルの書式設...
-
エクセル(2003) 「1900/1/0...
-
エクセルで上付き,下付き文字...
-
小数点以下の数字だけ小さいフ...
-
excelの軸
-
today関数で日付を全角文字で表...
-
Access ¥マークを表示しない
-
INDESIGNで空改行などのマーク...
-
Excelで勝手に小数点以下が増える
-
エクセル マイナスは黒文字で、...
-
エクセルの書式設定が解除でき...
-
Excelのセルでの配置です。
-
Excel 書式の一致を調べる関数...
おすすめ情報