2007年10月17日水曜日

第51回目 ちょっとした小物、計算式を文字化してコピー編

○第51回目 ちょっとした小物、計算式を文字化してコピー編
 (休暇のため朝一番で掲載します)

 通常とは違った計算式のコピーをします。これは前(第40回)にも出てきたものですが、結構利用価値があります。

 なかなか一般的な類型としての使用例は浮かばないのですが、ちょっとした時便利さを感じます。
 筆者がよく使う例は、計算式のチェックのときです。
 単純なものはいいのですが、他のシートのものを使っているとか、計算が複雑な場合とか、計算式を分割してチェックすることがあります。その際に使います。
 チェックしたいセルの下に6行ぐらい行を挿入します。そこにチェックしたい計算式を文字化したものを複数コピーします。
 コピーした文字化された計算式を、複数に分割します。それを計算式化するのです。すると、使っている数値や中途経過がわかります。分割したものでチェックして、そこが正しければ、全体の計算式が正しいということになります。
 ほかの例としては、単純にそのままコピーした方が、その後で修正しやすいといった場合でしょうか。通常コピーの場合、座標が動いてしまいます。

《マクロの例》
'範囲を指定して実行する。
'計算式のあるセルの計算式に特殊な記号を付加して文字化する
 Dim CCC As Object
 For Each CCC In Selection
   If CCC.HasFormula = True Then
     CCC = "xxx" & CCC.Formula
   End If
 Next
 ※逆の処理は、第40回を見てください(通常処理の置換え処理をもとにしたものです)。

 ※本日もその適用事例がありました。計算式を画面に出し、画面で見て、どこで区切ったら、チェックがスムーズにいくかと分析していると疲れてしまいましたので、文字化された式をコピーしテキストに移して印刷してから取り掛かりましたが、結果的にはそれのほうが早かったです。エクセルとテキストエディタの間の行き来がスムーズにいくともっといいなあという感想でした。
 通常はAlt+tabで起動している画面の一覧を出して、それから選択するという操作をしますが、もっとスムーズなものがないでしょうか。研究したいと思います。

【作業手順】
 1.チェックしたいセルの下に6行ぐらい行を挿入する。
 2.エクセルで計算式を文字化する。文字化したものをCtrl+C
 (テキストエディタに移動)
 3.Ctrl+Vでテキストエディタに張り付ける。
 4.テキストエディタの中で、式を分解・加工する。この段階で計算式にしてよい。
 5.式をTABで結ぶ(=計算式1[TAB]=計算式2[TAB]=計算式3[TAB]=計算式4)。全体をCtrl+C。TABで結ぶのは、一括変換をすれば簡単です。改行をタブに変えればいいのです。
 (エクセルに移動)
 6.エクセルに戻って、計算式を入れたい場所でCtrl+Vし、計算式を張り付ける。各セルに計算式がコピーされます。
 7.各パーツの計算式の結果をチェックする。
 8.範囲指定をして該当する場所を印刷(これもマクロ化すると便利)して、記録として残す。

 例
 xxx=($EU17-P17-EC17)*((CW17-CV17)/(Q17-P17+CW17+EA17-EC17))*GE17
 この計算式を、テキストエディタにはりつけ、チェック用に分解する。
=($EU17-P17-EC17)
=((CW17-CV17)/(Q17-P17+CW17+EA17-EC17))
=(CW17-CV17)
=(Q17-P17+CW17+EA17-EC17)
=GE17
 これを、改行をTABに変換し、エクセルにコピーする。
=($EU17-P17-EC17)[TAB]=((CW17-CV17)/(Q17-P17+CW17+EA17-EC17))[TAB]=(CW17-CV17)[TAB]=(Q17-P17+CW17+EA17-EC17)[TAB]=GE17
 すると、5つのセルに計算結果が表示される。
 これを印刷するなりして、チェックする。

 ※エクセルの中ですべて行ってもかまいません。
 ※該当する箇所を範囲印刷する際に、改ページが挿入されている場所を含めた場合は、2ページに分かれて印刷されてしまいます。スマートではないので何とかならないのかと思っています
 ※この機能と前回の文字のコピーの機能を合体させて、計算式を文字化して、張り付けるという一連の処理にすることも考えられます。エクセル内で処理を行なう場合は、操作が少なくなりますので、これを目標としてマクロを作成したらどうでしょうか。
 すでにコピーものと指定は終わっていますので、あとは貼付け先の指定と貼付けになります。さらに、最後に計算式化を入れて、元に戻すというのはどうでしょうか。

【手順】
 (範囲を指定して実行する)
 計算式のあるセルの計算式に特殊な記号を付加して文字化する
 文字化したものをコピーする
 貼付け先を指定し、張り付ける
 元の場所に戻り、文字化したものを計算式に戻す。
 
 このレベルになると、かなり便利になってきます。

0 件のコメント: