- ベストアンサー
複数のエクセル相対参照を絶対参照に一発変換したい。
一つの相対参照を例えば横方向にいくつか複写して、 複写された各セルの相対参照を、絶対参照化する時 各セルにポイントをおいて「F4」プッシュで処理 しています。これを範囲指定して一度に変換する方法があれば大変助かるのですが。 良い方法があったら教えて下さい。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
下記参考URLに相対参照を絶対参照にするマクロが書いてあります。 http://www2.odn.ne.jp/excel/waza/macro.html#SEC22 でもひょっとしたらこれだけでは使い方がわからないかもしれないので, 使い方例を1つだけ紹介しておきます。 わかっていたら以下は無視してください。 「ツール」→「マクロ」→「マクロ」から マクロダイアログボックスを出し, 「マクロ名」の欄に「test」と記入→「作成」をクリック。 するとVisual Basicエディタが開き,すでにModule1に ------------------ Sub test() End Sub ------------------ というものができていると思うので,そこを ----------------- Sub test() Dim c As Range For Each c In Selection If c.HasFormula Then c.Formula = Application.ConvertFormula(Formula:=c.Formula, _ FromReferenceStyle:=xlA1, ToAbsolute:=xlAbsolute) End If Next End Sub ----------------- にかきかえ,Visual Basicエディタえを閉じます。 再び「ツール」→「マクロ」→「マクロ」から マクロダイアログボックスを出し, 「オプション」から,マクロオプションでショートカットキーを割り当てれば, Ctrtキー+割り当てたキーでそのマクロが実行されます。 使い方は, For Each c In Selectionですから, 取りあえず変換したいセルを全て選び, Ctrtキー+割り当てたキーを押すというものです。
その他の回答 (3)
- sou96
- ベストアンサー率50% (2/4)
> 縦横固定する「$E$5]の場合、結局可変コピーは不可能なようですね。その為に「絶対参照・$」の機能が作られているということなのでしょうか。 そうですね。 計算式を1つ作るだけならば、絶対参照という考え方はいりませんよね。でも、元になる式を1つ作り、それをコピーしようとするときにはじめて、絶対・複合・相対的にセルの関係を見よう!という考えが生まれるわけです。 ひとつの計算式の中で、=E4*$E$5+E$9のようなセルの関係を作らなければならない場合も、多く出てきます。
お礼
有意義なアドバイスを有難うございました。 今後とも、小生のような初心者へのボランティア的助言活動を宜しくお願い致します。
- sou96
- ベストアンサー率50% (2/4)
> 絶対参照(例えば$E$5)のセルをオートフィルするとコピーされるのは、同一参照値(この場合$E$5)ではないのでしょうか。縦方向にオートフィルした時、$E$6,$E$7,$E$8,・・・と(相対参照の時と同様に)コピーされる方法があるのですか。 という質問に対してですが・・・ エクセルの数式をコピーする際には、相対的にコピーされる通常の方法の他に、絶対参照と複合参照と呼ばれるものがあります。 例えば、数式の一部のセル番地をクリックし、F4キーを1度押すと絶対参照になり、2度3度押すと、列だけを固定したり($E3)行だけを固定したり(E$3)できます。 このように固定すると、例えば$E3を横方向にコピーすると常に$E3となり、縦方向にコピーすると$E4,$E5,$E6と変化していきます。 的外れでしたらごめんなさいね!
補足
ご回答ありがとうございます。 「$E5」セルを縦方向にコピーすると、$で固定されているEポジションは固定されて、「5」だけが6.7.8と移動し、一方「E$6」セルを横方向にコピーすると、「6」は不変で、アンチェインのEだけが、F,G,H・・と横方向に変化する訳ですね。 縦横固定する「$E$5]の場合、結局可変コピーは不可能なようですね。その為に「絶対参照・$」の機能が作られているということなのでしょうか。
- macchan1
- ベストアンサー率38% (52/136)
>一つの相対参照を例えば横方向にいくつか複写して、 このような操作をしているのであれば、どれか1つのセルを絶対参照に変更して、その後オートフィルなどの操作(例えばコピー後、領域を選択して貼り付け)でコピー貼り付けすれば、簡単なように思うのですが・・・
補足
ご教示有難うございます。次点につき追加説明頂ければ幸甚です。 絶対参照(例えば$E$5)のセルをオートフィルするとコピーされるのは、同一参照値(この場合$E$5)ではないのでしょうか。縦方向にオートフィルした時、$E$6,$E$7,$E$8,・・・と(相対参照の時と同様に)コピーされる方法があるのですか。
お礼
有意義なご回答ありがとうございました。 折に触れて利用させてもらいます。 今後とも、初心者への助言活動よろしくお願い致します。
補足
ご教示有難うございます。 小生の求めている処理に最適のマクロですので、早速使用させていただきます。 補足的にもう一つ教えてください。 小生の初歩的な理解力では、複数のブックでこのマクロを使いたいときには、各ブックにこのマクロを書くという煩雑な作業が必要であると思うのですが、このマクロをどこかに登録しておいて、複数のエクセルブックでそれを利用するといった方法は不可能でしょうか。もし良い方法があったら教えてください。