あるExcelファイルでフリーズしたと思うほどカットアンドペーストに時間が掛かるようになった。
自分で作ったファイルでは無かったので原因が判らずネットを彷徨ったのだが、月並みな事例しか見つからない。
色々調べた結果、条件付き書式が悪さをしていると判明。
以前から条件付き書式の入ったファイルをコピーしていくと遅くなるのは経験していたのだが、ここまで遅くなるとは・・・・。
あるExcelファイルでフリーズしたと思うほどカットアンドペーストに時間が掛かるようになった。
自分で作ったファイルでは無かったので原因が判らずネットを彷徨ったのだが、月並みな事例しか見つからない。
色々調べた結果、条件付き書式が悪さをしていると判明。
以前から条件付き書式の入ったファイルをコピーしていくと遅くなるのは経験していたのだが、ここまで遅くなるとは・・・・。
こんなエラーが出た。
「削除されたレコード: /xl/workbook.xml パーツ内の名前付き範囲 (ブック)」
無視しても問題なさそうな気もするがちょっと気になったので調査。
どうやらACCESSのクエリー名称に記号が使われていたりすると発生するようだ。
今回の場合は「+」が使われていた。(よくありそうなところでは括弧とかだろうか)
名前を変更して解決
多分最近のバージョンでは直っていると思うのだが古いバージョンを使ってたりすると遭遇する問題。
古くはNew Glimフォントとかだった気がするが今回遭遇したのはOffice2007で、その場合はminguliuフォントだったりするようだ。
管理者権限でコマンドラインを開きFontsフォルダーで以下のコマンドを打ち削除、再起動。(多分)
| takeown /F minglic.ttx /A icacls mingliu.ttc /grant Administrators:(F) ren mingliu.ttc mingliu.bak |
以前以下で書いたのと同じ現象。
ブロックの属性を解除してやると直る。
http://madogiwatosan.blogspot.jp/2014/12/offce.html
なぜメッセージが違うのかは判らない。
ExcelのバージョンやOS等の影響をがあるのかな・・・。
今回もう少し調べてみると、このフラグが立っていても通常は保護モードで開けるのだとか。
こんな感じ。
これが、「ソルバー アドイン」や「分析ツール」などのアドインが有効になっていると保護モードで開けずに標題のメッセージが表示されることがるのだとか。
ただし、今回自分の環境(Excel2013)で試した所、問題はなかったので既に修正されているのかもしれない。
基本的にはWordも同じ動作をすると推測されるのだが、Wordのバージョン(2013)およびOSの種類・」バージョンが同じでも保護モードで開いたり、エラーになったりとの違いがあるケースも見られた。
相変わらず混沌としている。
ネットからダウンロードしたOffceiファイルを開くと「メモリ不足」とかふざけたメッセージでエラーが出て開けないことがある。
ネットで対策を調べると以下の様な奴が上位にヒットする。
[Office] Liveメールに添付されたOfficeファイル(Word,Excel,PowerPoint)が「メモリまたはディスクの空き容量が不足しているため、ドキュメントを開いたり、保存したりできません」とエラーして開かない | mkoba のお部屋 : DREAMHIVE Staff Blog
メールに添付されたファイルを開けない | お客様の快適なIT業務をアシスト KINGYO-ASSIST
どちらもセキュリティを甘くしろといった内容。
いやー、「駄目よ~ん、ダメダメ!!」そんなことしちゃ。(笑)
セキュリティが甘くなって危険でしょう。
全く持ってMSの意図とは違う!!
ネットからダウンロードしたファイルにブロックフラグが付いているので、それを解除してやるのが筋でしょう。
ファイルを右クリックしてプロパティを表示させ、「ブロック解除ボタン」をクリックしてやればOK
MSにはこの頓珍漢なエラーメッセージを早く修正してほしいものだ。
どうにもこうにもOffice2013にしてから問題続き。
最近MSの品質低下が著しい。
Excelが日に何度もフリーズする。
世の中的にはあまり話題になっていないので使い方に問題がありそう。
発生時の状況を注意してみると、どうもエクスプローラーのプレビュー機能と一緒に使うとフリーズするケースが多い。(と思う)
同時実行制御が駄目駄目?
エクスプローラのプレビュー機能は沢山のファイルの中身を確認するには便利なのだが・・・。
また、便利だけど使えない機能が増えた?
Wordどかでは試していない・・・・。
マウスが使えればCtrlを押しながら選択。
マウスが使えないとか、タッチパッドで使いづらいとか、キーボードから手を放したくない時にどうするか。
基本的には「Shift+F8」を使うと良さそうだが、ちょっと慣れが必要。
上記のような選択をするには、
Shift+F8を押した後、矢印キーで「2」へ移動し「2」とその隣を選択
再びShift+F8を押した後、矢印キーで「3」へ移動し「3」とその隣を選択
とりあえずこれでOK
現在、追加モード(Shift+F8を押した後のモード)かどうかは左下にステータスが表示される。
追加モードから抜けるには「Esc」
これがなかなか難しい。(上記と同様に操作して選択範囲を一旦広げて戻すというのもありだが)
色々検索したが見つからないので、とりあえず試行錯誤の末以下の方法を使う事とした。
矢印で「2」へ移動し、Shiftを押しながらF8を2回押す。
同様に矢印で「3」へ移動し、Shiftを押しながらF8を2回押す。
Shift+F8が押しづらいのが玉に傷。
右手で矢印キーを操作しながら、同じく右手で「右Shift」を押して、左手でF8を押すのが操作しやすいか・・・。
Excel VBA
通常、選択行は「Range」オブジェクトの「Rows.Count」とかで簡単に取れる。
しかし、これが「Ctrl」を使って非連続行を選択したりするとうまくいかない。
「Rows.Count」は最初の選択行(連続した部分)の行数が返ってくるようだ。
選択された全行を取得するにはどうするのか。
調べてみたが意外とこれが見つからない。
さすがに世界を代表するソフトだけあってExcelの問題はネットを探せば簡単に解決策が見つかるものだが、不思議と問題にしている人さえほとんど見かけない。
(もしかすると根本的にやり方が間違っているのかも・・・)
ネットで回答が見つからなかったので自分なりに力技で求めてみた。
選択部分は「Selection.Areas」で塊ごとの「Range」オブジェクトが返ってくるようだ。
だとすればあとはそれぞれの行数をカウントして足すだけ。
| RowCount = 0 |
もっとダイレクトな方法があってもよさそうだが、とりあえず良しとする。
またもDBCS絡みのバグっぽい。
SharePointのパワーピボットギャラリーにファイルをアップロードして自動更新の設定を行った。
しばらくして、更新結果を確認するために開こうとすると以下のようなメッセージが表示される。
自動更新しただけでファイルが壊れてしまうとは・・・。
相変わらずやってくれる。
調べてみると以下のようなバグが報告されている。
PowerPivot for SharePont: Data Refresh causes a damaged book | Microsoft Connect
日本語環境だけで発生する不具合のようだ。
CUで対策済みだとか。(どのCUか書いてくれても良いのにね・・・)
これかな。
累積的な更新プログラム パッケージ 2 SQL Server 2008年の R2 の
CUによってまた別の不具合が出たりするので、どうしたものか・・・・。
ExcelのアドオンであるPowerPivotを検証している。
機能的には気に入ったが、若干動作が不安定で、再起動すると直ったりする。
Webサイトからテーブルデータをコピペしてシートを作り、ピボットテーブル化してスライサーを追加しようとした所以下のようなエラーが出た。(スライサーフィールドを追加できませんでした)
なぜだかよくは判らないが、対処方法としては「Ctrl + Alt + F5」で最新状態に更新してやると良いようだ。
データ接続を使ったExcelファイルを開くと以下のような「セキュリティの警告」が表示される。
「コンテンツの有効化」ボタンをクリックすればデータ接続を有効にできるが、毎回有効化するのが面倒なときはExcelの設定を以下のどちらかに変更する。
メッセージにある通り2番が推奨。
大至急教えてください!エクセルで沢山数式が入っているものをそのままコピーする... - Yahoo!知恵袋
なるほど。
でも、ブックを跨ったコピーは元のブック名を参照してしまう。
仕方が無いのでとりあえずコピーした後、ブック名を全置換で削除。
(何か良い方法があるのだろうか・・・)
式はこんな感じ。
=IF(TEXT(B8,"e")="1",TEXT(B8,"ggg元年m月d日"),TEXT(B8,"ggge年m月d日"))
漢数字で表示するには[DBnum1]書式指定文字を使用する。
=IF(TEXT(B7,"e")="1",TEXT(B7,"[DBnum1]ggg元年m月d日"),TEXT(B7,"[DBnum1]ggge年m月d日"))
きっとFAQであろう。
簡単なのは日付が入されえているセルを選んで書式設定変更する。
“aaa”で日、月、火表示。
”aaaa” で日曜日、月曜日、火曜日を表示される。
WEEKDay関数とCHOOSE関数組み合わせる定番方法もある。
=CHOOSE(WEEKDAY(E4),"日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日")
また、数値形式になっている場合の値を日付型にするはDATE関数とMID関数を組み合わせる。
=DATE(MID(E11,1,4),MID(E11,5,2),MID(E11,7,2))
ちなみに、Excelで関数入力するときはShft + F3で関数入力ダイアログを表示させると便利だ。
=DATE(MID(E11,1,4),MID(E11,5,2),MID(E11,7,2))
まずはよくあるサンプルでスケジュール表の当日行の色を変えてみる。
例をもう一つ。
以下のような表示で設計と製造の進捗を管理している。
どちらかが「中止」になったときは両方共「中止」するルールがあったときに、不一致になっている部分が判るよう条件書式を設定する。
今度は、行が追加されても良いように設計列と製造列全体を選択して書式設定する。
式はこっちのほうが良いのかな。(not equalってこうだっけ?)
=($N1="中止")<>($P1="中止")