「トラブル対応」タグアーカイブ

Excel:シートをコピーしようとすると「移動またはコピーしようとしている数式またはシートには、移動またはコピー先のワークシートに既にある名前’xxx’が含まれています。この名前を使用しますか?」というメッセージが表示される原因

Excelを操作しているとシートをコピーする際に「移動またはコピーしようとしている数式またはシートには、移動またはコピー先のワークシートに既にある名前’xxx’が含まれています。この名前を使用しますか?」というメッセージが表示される事がたまに発生します。今回はその原因と対処方法についてメモしておきます。

原因

    一部のセル範囲に名前指定していてその指定した範囲を列削除などしていると名前指定範囲等がおかしくなってしまい、シートコピーの際にメッセージが表示されてしまいます。
    ※Office2013の場合は「名前’xxx’は既に存在します。この名前にする場合は[はい]をクリックします。移動またはコピーを行うために’xxx’の名前を変更する場合は、[いいえ]をクリックします。」というメッセージになります。

対処方法

  1. 「Ctrl + F3」もしくはメニューの「数式」タブ⇒「名前の管理」を選択します。
  2. 名前の管理画面が表示されたら表示された一覧で参照範囲か範囲の数式が「#REF!」などエラーになっている箇所を修正する。もしくは名前定義そのものを削除すれば完了です。

djUnitでaddReturnValueが効かない原因について

ちょっとdjUnitで「addReturnValue」を使用しても全く効いてない?という事象に少しハマっていたので原因についてメモしておきます。

addReturnValueが効かない原因

addReturnValueが効かない原因として上げられるのが概ね以下の3つになるかと思います。1と2については少し見なおせばすぐ発見出来そうですが、今回ハマった原因が3でした。。。

  1. クラス名の指定が間違っている
  2. メソッド名の指定が間違っている
  3. 指定したメソッドが複数回実行されている

「指定したメソッドが複数回実行されている」とは

では「指定したメソッドが複数回実行されている」というのはどういう事かというとについて説明します。
根本的な話として以下の2つのコードは全く同じ意味という事を理解しておく必要があります。

これだけで気づく方はハッと思うかもしれませんが、ここで重要なのはaddReturnValueでは「1回目に実行」されたメソッドのみしかaddReturnValueで指定した値が返ってこないという事です。つまり「setReturnValueAt」で1回目を指定した場合と同様の動きしかしてくれないのです。
今回私がハマったのは指定したメソッドが想定した箇所よりも手前で事前に実行されていた為、想定したいたメソッドは2回目の実行になっていたために2回目の方にはaddReturnValueが効いていなかったという事象でした。

addReturnValueが効かない時の調査方法

addReturnValueをしてクラス名やメソッド名は正しいのにどうも効いていないように見える時は一度「getCallCount」でメソッドの実行回数を調査して見ると良いかもしれません。

Excel:印刷すると1ページ目にしか印刷設定内容が適用されない場合の対処方法

Excelで複数ページを印刷する場合に「2 in 1」などに集約して印刷設定した後に印刷してみると1頁目だけ「2 in 1」形式で印刷され、2頁目以降は「2 in 1」形式ではなく元のまま1ページ分そのまま印刷されてしまうという事を経験した事はないでしょうか。これは印刷設定画面でプレビュー表示されている頁のみに変更した印刷設定が適用されている為に発生する事象です。解決するには大きく2通りの方法があります。

対処方法.一

    一つ目の対処方法としては印刷画面で「1頁単位で表示⇒印刷設定」を印刷する頁数分繰り返して指定する方法です。
    ただこの方法では印刷頁数が2,3枚程度ならいいですが数十、数百頁ある場合は手間が掛かり過ぎるのでお勧め出来ません。

対処方法.二

    二つ目の対処方法(というか根本的な対処方法)としてはExcelファイルを開く前にWindowsメニューの「デバイスとプリンター」画面で対象のプリンタのプロパティから直接印刷設定変更した後でExcelファイルを開いて印刷する方法です。
    基本的にExcelでは起動した際にデフォルトでプリンターの印刷設定通りに印刷されますので、Excelを起動する前にプリンターの印刷設定をしておけば全ての印刷対象頁にその設定が反映されます。

WordPressのバージョンアップ後に「Warning: Missing argument 2 for wpdb::prepare()」が発生

最近WordPressのバージョンアップを3.8へアップデートしてサイトを表示してみたら、プラグインを使用している箇所で「Warning: Missing argument 2 for wpdb::prepare()」というワーニングメッセージが表示されていました。どうもこの事象は3.5へアップデートした時から発生している事象のようで、当方は3.4→3.8へのバージョンアップだったので今頃遭遇しました・・・。
放置しても動作はしますが、見栄えが悪いので対処方法を調べてみました。

原因

WordPressの3.5以上では「wp-db.php」で定義されているFunction「prepare」の引数の数が2つ必要になっています。

今回Warningが発生した原因はこの「prepare」をプラグインのphpから呼び出す際に引数が1つしか指定されていない為にWarningが表示されたみたいです。

対処方法

原因は明確なので、function「prepare」を使用しているphpを修正します。function「prepare」を使用している箇所へダミー引数となる「null」を2つ目の引数として指定すれば対応完了です。(もちろんプラグインが正式対応したらバージョンアップしましょう)

変更前

変更後