Home » エクセルマクロ・Excel VBAの使い方 » Rangeオブジェクト » すべてのセル参照を絶対参照にするExcelマクロ

すべてのセル参照を絶対参照にするExcelマクロ

対象:Excel97, Excel2000, Excel2002, Excel2003

Excelを実務で利用している方の中に、絶対参照にする必要のないセル参照を、相対参照のままにしておく方と、絶対参照にしたがる方とが存在します。

絶対参照はセル参照を含む数式の入力されているセルをコピーをしたときに、参照先セルを変更したくないときに利用する参照方式ですから、セルのコピーをしないような場合、絶対参照にする必要はなく相対参照のままで問題ありません。

けれども、すべてのセル参照を絶対参照にしておきたいという方が、時々いらっしゃいます。

数式を入力したワークシートを作成後、相対参照・絶対参照を理解していない方に利用してもらう場合に、不用意にセルの移動やコピーをされることによってエラーが発生するのを極力回避したいというという気持ちなどから、セル参照をすべて絶対参照にしておきたいという要望となるようです。

数式入力中に参照方式を変更するには、[F4]キーを押せばいいわけですが、数式の入力済みの場合、数式バーやセル内にカーソルを置いてから[F4]キーを押さなければ、相対参照を絶対参照にすることはできません。

数式の入力されているセル範囲を選択しておいて[F4]キーを押しても相対参照は絶対参照にはなりません。

そのため
「すべての相対参照を絶対参照にするにはどうすればいいのでしょうか?」
というご質問をいただくことになります。

[スポンサード リンク]

Excelの標準機能では、相対参照を一括して絶対参照にすることはできませんから、VBA(Visual Basic for Applications)でマクロを作成しましょう。


Sub 選択範囲のセルの数式を絶対参照にする()

 Dim rng As Range

 For Each rng In Selection
 With rng
  If .HasFormula Then
   .Formula = Application.ConvertFormula( _
    Formula:=.Formula, _
    FromReferenceStyle:=xlA1, _
    ToAbsolute:=xlAbsolute)
  End If
 End With
 Next rng

End Sub

Application.ConvertFormulaメソッドの引数・ToAbsoluteに定数xlAbsoluteを指定することで、絶対参照に変換することができます。

For Each Nextループ文で、選択範囲内のセルをチェックし、
 For Each rng In Selection

もし数式が含まれていたときに
 With rng
  If .HasFormula Then

絶対参照に変換しています。
   .Formula = Application.ConvertFormula( _
    Formula:=.Formula, _
    FromReferenceStyle:=xlA1, _
    ToAbsolute:=xlAbsolute)

関連語句
一括絶対参照,絶対参照の教え方,数式そのまま,複数のセルをまとめて絶対参照に変換する

Home » エクセルマクロ・Excel VBAの使い方 » Rangeオブジェクト » すべてのセル参照を絶対参照にするExcelマクロ

[スポンサード リンク]
[スポンサード リンク]

TrackBack:1

TrackBack URL
絶対参照を一括解除して相対参照に from インストラクターのネタ帳
対象:Excel2002, Excel2003, Excel2007 「エクセル 絶対参照 一括解除」 「絶対参照をすべて相対参照に」 といった検索を...

Home » エクセルマクロ・Excel VBAの使い方 » Rangeオブジェクト » すべてのセル参照を絶対参照にするExcelマクロ

「Rangeオブジェクト」の記事一覧

検索

最近じっくりと読まれている記事

.