管理者 のすべての投稿

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」でメソッドの実行回数を調査して見ると良いかもしれません。

djUnitでメソッドが呼び出されていない事を確認する方法

djUnitではメソッドが呼び出されている事の確認は「assertCalled」を使用する事で確認出来ましたが、逆にメソッドを呼び出されていない事の確認では「assertNotCalled」を使用する事で確認出来ます。

Javaソース

djUnitサンプル

    以下のテストソースでは「getDiffDays」メソッドが呼び出されていない事を確認しています。

djUnitでメソッドが呼び出された事を確認する方法

djUnitではassertCalledを使用する事でメソッドが呼び出された事が確認出来ます。

Javaソース

djUnitサンプル

    以下のテストソースでは「htmlEscape」メソッドと「urlEncode」メソッドが呼び出されている事を確認しています。

複数回呼び出された時の確認方法

以下の様に「getCallCount」を使用する事でメソッドが何回呼び出されたかを確認する事も出来ます。

djUnitで戻り値なしのメソッドを無効化する方法

djUnitでテストする際に、一部のメソッドは特に実行する必要はないけどそのメソッドの処理はスルーさせたいケースがたまに発生します。こういう場合にはdjUnitのaddReturnValue機能を活用する事でそのメソッドの処理を無効化する事が出来ます。
通常addReturnValueはメソッドの戻り値を好みの値に変更する際に使用しますが、戻り値なし(void)のメソッドの時には通常使用しません。それでも戻り値なしのメソッドをaddReturnValueで指定するとそのメソッドが実行されずメソッドの処理を無効化する事が出来ます。
ただし、この方法は戻り値なし(void)のメソッドにしか活用出来ませんのでご注意下さい。

Javaソース

djUnitサンプル

コンソール

    addReturnValueを使用しないでテストした場合
    addReturnValueを使用してテストした場合

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

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

対処方法.一

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

対処方法.二

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

サクラエディタでタブ表示する方法

サクラエディタのデフォルト状態では複数のテキストファイルを表示するとファイル毎にウィンドウが表示されてしまいます。個人的にテキストファイルを表示する際はウィンドウは一つにまとめたいのでタブ表示化してしまえば、問題解決です。

サクラエディタでタブ表示する手順

  1. サクラエディタを起動して「設定」メニューにある「タブバーを表示」を選択します。
  2. これだけで以下の様にタブ表示されます。
  3. 1ファイルだけでは分かり難いので、試しにファイルを新規作成してみるとタブ表示が増えてテキスト毎にウィンドウが表示されなくなるのがわかります。

iPhoneのバックアップ先を変更する方法

iTunesではiPhoneやiPodのバックアップを取得する際にバックアップ先を変更する事が標準では出来ません。
標準のバックアップ先はCドライブになる為、Cドライブの容量が少ない場合などではiTuensのバックアップ機能はあまりにも使い勝手が悪すぎます。ここでは「CopyTrans Shelbee」を使用してiPhoneのバックアップ先を変更する方法をご紹介します。
「CopyTrans Shelbee」はバックアップ先の変更だけではなくiTuensを起動していなくてもiPhoneやiPodのバックアップ・リカバリが可能なソフトです。

環境

    OS:Windows 7 Professional 64bit
    iTunes version:12.3.2.35
    iPhone6

CopyTrans Shelbeeのインストール手順

  1. 下記サイトへアクセスして「無料ダウンロード」をクリックするとインストーラをダウンロード出来ます。
    ⇒CopyTrans Shelbeeのダウンロードページ
  2. ダウンロードした「Install_CopyTransControlCenter.exe」ファイルをダブルクリックしてインストーラを起動します。
  3. 「インストール」ボタンを選択します。
  4. コネクションウィザード画面が表示されるので「接続テスト」ボタンを選択します。
  5. 警告ダイアログが表示されるので「OK」ボタンを選択します。
  6. 接続テストが正常に終了すると「接続テストに成功しました!」と表示されるのでそのまま「OK」ボタンを選択します。
  7. 今回インストールするソフト「CopyTrans Shelbee」を選択し、「インストール」ボタンを選択します。
  8. インストールが完了すると「インストール済みソフト」の下に「CopyTrans Shelbee」が表示されるのでそれを選択して「スタート」ボタンを選択すると「CopyTrans Shelbee」が起動します。

CopyTrans ShelbeeでのiPhoneバックアップ先の変更方法

  1. CopyTrans Shelbeeが起動したら「ツールボックス」タブを選択して、移動先フォルダを選択してバックアップ先のフォルダ指定(未作成ならフォルダを作成して指定)します。
  2. 確認ダイアログが表示されるので「はい」ボタンを選択するとバックアップ先の変更が開始されます。
  3. バックアップ先の変更が完了すると以下の様なメッセージが表示されるので「OK」を選択すればバックアップ先の変更は完了です。

    ※バックアップ先が変更されると従来のCドライブ化に保存されていたバックアップフォルダがショートカットリンクへ変更されているのがわかります。
    これでiTunesでバックアップ作業を実施しても変更後のフォルダへバックアップされます。

CopyTrans ShelbeeでのiPhoneバックアップ方法

  1. ここからはCopyTrans Shelbeeでのバックアップ取得方法となります。まずは「バックアップ&リストア」タブを選択します。
  2. 「バックアップ」を選択します。
  3. 「フルバックアップ」か「差分バックアップ」を選択します。ここでは「フルバックアップ」を指定してバックアップ先のフォルダを指定しています。
  4. 「スタート」ボタンを選択するとバックアップが開始します。結構時間が掛かるので気長に待ちましょう。
  5. 以下の画面が表示されればバックアップ完了です。

iPhoneバックアップ時の保存先について

iTunesでiphoneのバックアップを実行しようとした時に「十分な領域がありません」と表示されてバックアップが実行出来ない事があります。
そこでふと疑問に思うのがそもそも「iphoneのバックアップってどこに保存されてるの?」という点です。
ということでバックアップ先を調べて見ました。

環境

    OS:Windows 7 Professional 64bit
    iTunes version:12.3.2.35
    iPhone6

iPhoneのバックアップ先

iphoneのバックアップデータは以下へ保存されています。

    C:\Users\[ユーザ名]\AppData\Roaming\Apple Computer\MobileSync\Backup\

    私の場合、このBackupフォルダ内にフォルダが複数あり、その一つ一つのサイズが何十GBにもなっていました。。。そりゃ容量も足りなくなるか。
    なので最新のバックアップフォルダ以外は全て削除しました。
    基本的にバックアップは最新版の一つだけあれば十分!。それでも80GBとかあるのですが。。。

iPhoneのバックアップ先を変更する方法

※iPhoneのバックアップ先を変更する方法については以下記事をご参照下さい。
⇒iPhoneのバックアップ先を変更する方法

Excel:複数の条件でカウント・集計する方法

Excelで複数の条件でデータ数のカウントや集計する方法をご紹介します。
使用する関数は複数条件でのカウントならcountifs関数を、複数条件での集計ならsumifs関数を使用する事で実現出来ます。

動作環境

    Microsoft Office Professional 2013

Excelで複数の条件でカウントする方法

今回はCOUNTIFS関数を使用して以下の表データを対象に「工程」別に「状態」毎の個数を求めます。

  1. カウント結果を表示するセル(今回はH列へ表示させるので以下はH4セルの入力例となります)へ以下の式を入力します。
    「=COUNTIFS($B$3:$B$12,$F4,$C$3:$C$12,$G4)」
  2. 後は結果を表示したい行数分コピーしてすれば「工程」別に「状態」毎の個数が表示されます。

Excelで複数の条件で集計する方法

今回はSUMIFS関数を使用して以下の表データを対象に「工程」と「状態」毎に「期間」の集計値を求めます。

  1. 集計結果を表示するセル(今回はI列へ表示させるので以下はI4セルの入力例となります)へ以下の式を入力します。
    「=SUMIFS($D$3:$D$12,$B$3:$B$12,$F4,$C$3:$C$12,$G4)」
  2. 後は結果を表示したい行数分コピーしてすれば「工程」と「状態」毎に「期間」の集計値が表示されます。