複数のセルを相対参照としていますが、これを

   1回の操作で全ての相対参照を絶対参照にしたい

のですが、いい方法はありませんか。よろしくお願いします。
  
 ------------    ----------------
 A1|B1|…|Z1|  →  |$A$1|$B$1|…|$Z$1|
 ------------    ----------------

このQ&Aに関連する最新のQ&A

A 回答 (2件)

1回の操作というと、マクロくらいしか思いつきませんね。



ツール→マクロ→Visual Basic Editor でVBE画面に移り、
挿入→標準モジュール で標準モジュールを挿入し、そのコードウインドウに貼り付けます。(Public~End Sub)
シートに戻り、絶対参照に変えたい範囲(複数のセルでかまいません)を選択してcnvFormulaを実行します。
ご参考に。

Public Sub cnvFormula()
  Dim rg As Range 'セル
  For Each rg In Selection
    If rg.HasFormula And (Not rg.HasArray) Then
      rg.Formula = Application.ConvertFormula( _
               Formula:=rg.Formula, _
               fromReferenceStyle:=xlA1, _
               toAbsolute:=xlAbsolute, _
               relativeTo:=rg)
    End If
  Next
End Sub
    • good
    • 1
この回答へのお礼

nishi6さんこんばんわ。さっそく試してみました。出来ました。うれしい!!
手順まで示してもらい大変たすかります。

お礼日時:2001/09/19 23:43

こんにちは



 以下のページがご参考になるのでは?

【エクセル技道場】-マクロ-相対参照から絶対参照に
http://www2.odn.ne.jp/excel/waza/macro.html#SEC22

参考URL:http://www2.odn.ne.jp/excel/waza/macro.html#SEC22
    • good
    • 0
この回答へのお礼

kbonbさんこんばんわ。示されたマクロを張り付けたところ出来ました。ありがとうございました。

お礼日時:2001/09/19 23:50

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QSUMPRODUCT($A$1:$A$10,$B$1:$B$10)とSUMPRODUCT($A$1:$A$10*$B$1:$B$10)

エクセルのSUMPRODUCT関数についてお尋ねします。

=SUMPRODUCT($A$1:$A$10,$B$1:$B$10)

=SUMPRODUCT($A$1:$A$10*$B$1:$B$10)
の違いは何でしょうか?
両者とも同じ答えを返しますが、いろいろ試したところ、前者は範囲内に文字列があってもそれを無視して計算し、後者は文字列があればエラーになるようですが、その理解で正しいでしょうか?
正しいとすれば、なぜでしょうか?

Aベストアンサー

こんばんは。

配列計算をしているのは言うまでもありませんが、この、SUMPRODUCT は、必ず、内部のひとまとまりから計算するという性質を持っています。ただ、VBAのように左から時系列かどうかは、言語が違いますから、分かりません。しかし、この引数は、パラメータ配列になっています。そして、その引数それぞれの有効値を調べて、それを演算出来る値かどうか調べます。

文字列を入れてもエラーにならないのは、元々、そこに注釈などを入れるために考えられたものです。値を文字列か数値かを精査して演算するように出来ています。最初、SUM関数に対し、そのように作られました。プログラムとしては、初歩的なものですが、そのアイデアは、今日まで、踏襲しているようです。このオリジナルの仕組みを考えたのは、VisiCalc の開発者、ブルックリン氏です。昔々、本で読んだことがあります。 PRODUCT関数とも共通です。3つの関数は、同じような仕様を持っています。

こちらが、本来の使い方です。

=SUMPRODUCT($A$1:$A$10,$B$1:$B$10)

つまり、
$A$1:$A$10 と $B$1:$B$10 の値を別々に取得しています。

では、
=SUMPRODUCT($A$1:$A$10,$B$1:$B$11)

とすると、なぜ、エラーが出るかというと、$B$11 に対応する数値が、NULL値(有効な値がない)だからです。それは、全体に反映させてしまいます。(理由は分かると思いますが、プログラムが途中で、エラーで止まってしまうからです)

ところが、こちらは、

=SUMPRODUCT($A$1:$A$10*$B$1:$B$10)

$A$1:$A$10*$B$1:$B$10 は、分割出来ません。したがって、この数式の中でのエラーは、そのまま、元の数式に反映されます。

ご自分で、ユーザー定義関数を作ってみれば分かります。VBAでも、同じように作ることが可能です。一度、試してみるとよいです。

こんばんは。

配列計算をしているのは言うまでもありませんが、この、SUMPRODUCT は、必ず、内部のひとまとまりから計算するという性質を持っています。ただ、VBAのように左から時系列かどうかは、言語が違いますから、分かりません。しかし、この引数は、パラメータ配列になっています。そして、その引数それぞれの有効値を調べて、それを演算出来る値かどうか調べます。

文字列を入れてもエラーにならないのは、元々、そこに注釈などを入れるために考えられたものです。値を文字列か数値かを精査して演算...続きを読む

Q=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $

いつもお世話になってます。
以下の関数式について、お時間がありましたらどうぞご教示ください。

=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $12,2,FALSE))

「シート2の範囲指定した表にA1セルの値と同じ値の右隣になる値を返せ。ただし該当なき場合は空白とせよ。」

純粋になんでこのような構文になるのかが解りません。

1.ISNAってそもそもなんでしょう?
2.同じ式を繰り返すのはなぜ?
(模範式で、このように同じ式を繰り返す構文があまり無いように思えたのです。)

・参考となる他所のページがあれば教えて下さい。
・素人です。お手柔らかにお願いします。

(エクセル2003)

Aベストアンサー

1.ISNAってそもそもなんでしょう?
ISで始まる情報関数の一つで、#N/A!エラーのみを判定する関数
結果はTRUE(真),FALSE(偽)のいずれかになります。
エラー判定のIS関数には他に
ISERR:#N/A!を除くすべてのエラーを判定する関数
ISERROR:すべてのエラーを判定する関数
があります。

2.同じ式を繰り返すのはなぜ?
ISNAの判定する値がセルでなく数式の結果だからです。
A2=VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)
なら
A3=IF(ISNA(A2),"",A2)
ということになります。A2のように計算の為のセルを省略する為に
=IF(ISNA(数式),"",数式)のように同じ数式を2回繰り返しになってます。

Q"$B$32:$H$32,$K$32:$N$32,$P$32:$AH$32" を変数に置き換えたい

こんにちは。よろしくお願いします。いつもgooの皆さんには大変お世話になっています。
エクセルは2013です。どなたか教えてください。

質問内容
Wクリックの範囲指定が現状はこのようになっています
If Not Intersect(Target, Range("$B$32:$H$32,$K$32:$N$32,$P$32:$AH$32")) Is Nothing Then

行を指定する32を
Dim shg as long
shg=32
とした場合、上記の範囲指定を & と変数 shg でつなげていくと、あまりにも長くなってしまいます
もっとスマートな書き方はないでしょうか

Aベストアンサー

If Not Intersect(Target, Rows(shg), Range("$B:$H, $K:$N, $P:$AH")) Is Nothing Then

QEXCELにて$A1(絶対列参照)の行のみ変えたい

$A1(絶対列参照)で列を固定し行の数字のみをある一定の数値加算で変えてデーターを取り出していきたいのですが、どうすればいいのでしょうか?
間違った数式ですが、こんな感じにしたいのですが
$A1+7($A8にしたい)これを下の行にコピペしていき、+7行目ずつセル枠を($A15、$A22、$A29・・・・)移動させてセルのデーターを取り出していきたいと考えてます。
画像参照
よろしくお願いします。

Aベストアンサー

=INDIRECT("$A"&ROW(A1)*7-6)

あるいは、
B列に、
1,8,15...
C列に、
=INDIRECT("$A"&B1)

Qreplace関数で、「=$A$1]の「A]を「B]に置換不能

A(1-20)列のデータをH列に「=$a$1」-「$a$20」とコピーします。次にB(1-20)列のデータをJ列に「=$b$1」-「$b$20」とコピーする最良の方法を教えて下さい。現在ではH列の「=$a$1」-「$a$20」をJ列にコピーしてから、$a$の部分を$b$に訂正しています。
replace関数でaをbに置換しようとしても、関数のaが置換されず表示データが置換されてしまいます。
稚拙な文章で意味が伝わったかどうか不安なのですが、よろしくご教示ください。

Aベストアンサー

方法1.J列を選択して「編集」「置換」で「A」→「B」に置換する。

方法2.H列に「=OFFSET($A1,0,COLUMN()/2-4)」として
これをコピーしてJ列に貼り付け


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング

おすすめ情報