
No.1ベストアンサー
- 回答日時:
VBAを使わないと出来ません。
参考のため、一応コードを貼っておきます。
Sub WK()
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
Application.StatusBar = False
End Sub
No.5
- 回答日時:
#4の回答者です。
「シート内に入力済みのすべての数式を、一度に絶対参照に転換」する理由
#3さんの質問を質問者に代わって私が回答するというのは、まったくもってでしゃばった行為ですし、質問者さんの回答とは同じだと思っているわけではないのですが、なぜ、こんなマクロのテクニックが残っているかお答えさせていただきたく思いました。
端的にいうと、この絶対参照に変更というのは、Lotus123->Excel の人には、あまり馴染みがないでしょうけれども、昔からのPCユーザーの最初の表計算は、Excelの前進ともいえる、同じ作者のMS-Multiplanで、各社各様にOEM販売され、富士通のワープロにさえバンドルされていました。その仕様が、R1C1方式で、Multiplan は、日本では、NEC 98モデルの普及とともに使い続けられ、その製品は1992年頃を、最後に約10年で終えました。
だから、一部の人には、R1C1方式は馴染みが深かったわけです。それで、ずっとR1C1方式で使い続ける人が残っていたわけです。
A1方式には相対参照と絶対参照の差はあまり大きく変化しないのですが、このR1C1方式は、相対参照と絶対参照では、まったく考え方が違うというか、相対参照には、セル位置の情報がないので、どこを参照しているのかまったく分からないわけです。そのために、絶対参照式に変える必要性を感じたわけです。今となっては、そんな要求する人は皆無だとは思いますが……。
さて、問題のマクロは、私の言葉どおりなら文句はないのでしょうから、このコンバートは、シートが、A1スタイル上でないと、今のところ、私の所では変換しません。
補足欄を使えないので、この欄をお借りして。
#2さんのご回答欄に#3さん宛ての内容を書いてしまいました。
#2さん、どうも失礼いたしました。
そして、#3さんともども大変参考になりました。
No.4
- 回答日時:
すでに回答がでてしまいましたが、古典的マクロのひとつです。
私は、まだ、VBAを習いたてで、たぶん、#3さんはご存知かと思いますが、芳坂さん(日経BP21)が書いていたマクロと、自分が書いたものとを見比べたことを思い出します。私は、当時と、それほど変わらないかもしれません。未だに、わかっていないところがあります。
If Not r.HasArray Then
この部分は、私は知りませんでした。
'//
Sub ConvertFormulas()
Dim rng As Range
Dim rf As Range
Dim r As Range
Set rng = ActiveSheet.UsedRange
On Error Resume Next
Const AB As Integer = xlAbsolute '絶対座標 'xlRelative '相対座標
Set rf = rng.SpecialCells(xlCellTypeFormulas)
If Err <> 0 Then Exit Sub
On Error GoTo 0
If Application.ReferenceStyle = xlR1C1 Then 'R1C1 方式はA1方式の戻す
Application.ReferenceStyle = xlA1
End If
Application.ScreenUpdating = False
For Each r In rf.Cells
If Not r.HasArray Then '配列数式は除外されます。
r.Formula = Application.ConvertFormula( _
Formula:=r.Formula, FromReferenceStyle:=xlA1, _
toAbsolute:=AB, RelativeTo:=r)
End If
Next
Application.ScreenUpdating = True
End Sub
ご回答ありがとうございます。
わたしのような素人に過分なる知識を開陳していただき恐縮です、
どうも猫に小判といった印象で・・
これに懲りずに、またよろしくお願い申し上げます。
No.3
- 回答日時:
マクロを使用しない関数や置換機能ではできないけど、長年 Excel を使用して来た私には貴方が希望する機能の必要に遭遇したことがありません。
参考までに教えてください。「シート内に入力済みのすべての数式を、一度に絶対参照に転換」したくなったのはなぜですか?
ご回答ありがとうございます。
セルの位置を変更する必要が生じまして、その際、絶対参照にしとかないと、あとが面倒になることに気づいたという次第。
なぜすべてなのか?という疑問を持たれたのかもしれませんが、大幅な手直しをしたくなったわけです。
まあ、先を見通せない素人の悲しさといったところですかね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) ピボットテーブルの参照式はオートフィル出来ない? 2 2023/03/03 15:57
- Excel(エクセル) エクセルの複数のセルを一括で絶対参照にする方法 3 2023/06/14 15:57
- Excel(エクセル) エクセルの数式について ブック内の別シートの値の含まれたセルの個数を集計したい 全シート一覧のシート 1 2022/07/21 19:28
- Excel(エクセル) excelのindirect関数の別ブック参照について質問です。 1 2022/06/03 15:17
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
- Excel(エクセル) 計算式がたくさん入ったExcelのファイルを他のファイルからシートを挿入した際、計算式の中に他のファ 4 2023/08/15 11:28
- Excel(エクセル) エクセル シート比較で書式を変えるを繰り返したい 2 2023/05/05 11:25
- Excel(エクセル) Excel 計算式を教えて下さい 3 2022/12/15 19:46
- Excel(エクセル) Excelで行削除をすると… 1 2023/07/26 11:57
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのシート上のShapeにイベ...
-
エクセルで特定の行だけ行削除...
-
エクセルで複数のシートのクリ...
-
マクロ1があります。 A1のセル...
-
【エクセル】フリーワード検索...
-
Excelで数字を入れたら対応する...
-
エクセルファイルを開いた回数...
-
【エクセル】「実行時エラー’10...
-
Excel VBAでのWorksheet_Change...
-
EXCELのダイアログシートって、...
-
エクセル シート内の一番下のセ...
-
Excelにて、同じ画像を複数のセ...
-
長い時間かかるマクロが実行中...
-
excel定数の違いについて。xlAu...
-
エクセルでマクロを作りすぎた...
-
自分の専門分野の仕事。初見で...
-
指定値をマクロで検索&シート移動
-
エクセルで至急教えてください!
-
エクセルで○をつけるマクロ設定
-
マクロを有効にしないとExcelフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでのWorksheet_Change...
-
エクセルで複数のシートのクリ...
-
マクロ1があります。 A1のセル...
-
Excelで数字を入れたら対応する...
-
Excelのシート上のShapeにイベ...
-
エクセル シート内の一番下のセ...
-
長い時間かかるマクロが実行中...
-
【エクセル】フリーワード検索...
-
エクセルで特定の行だけ行削除...
-
エクセルファイルを開いた回数...
-
EXCELのダイアログシートって、...
-
【エクセル】「実行時エラー’10...
-
Excelでセル内の文字をファイル...
-
セルの一部分だけを太字にする方法
-
エクセル マクロ 一定時間おき...
-
Excelにて、同じ画像を複数のセ...
-
前月分を次月シートに繰越でき...
-
エクセル:セル内の文字列の最...
-
excel定数の違いについて。xlAu...
-
excelで画像のハイパーリンクを...
おすすめ情報