アプリ版:「スタンプのみでお礼する」機能のリリースについて

題名のとおりなんですが、どうしたらよいのでしょうか?
やはり相対参照をフィルハンドルでコピーしたものに、F4キーでひとつずつ絶対参照にしていくしかないのでしょうか?

A 回答 (7件)

No.3です。



空セルのときに未処理となるようにしないと、変な残骸がでてしまうことに気付きましたので、コードを一部修正しました。

'選択範囲内の相対参照数式を絶対参照数式へ変換
Sub Sample()

  Dim rngCell As Range
  For Each rngCell In Selection
    If Not IsEmpty(rngCell) Then
      Select Case rngCell.HasArray
        Case True
          rngCell.FormulaArray = _
          Application.ConvertFormula( _
          rngCell.FormulaArray, xlA1, , xlAbsolute, rngCell)
        Case False
          rngCell.Formula = _
          Application.ConvertFormula( _
          rngCell.Formula, xlA1, , xlAbsolute, rngCell)
      End Select
    End If
  Next rngCell

End Sub

とここまで書いてなんですが、はずしていたら申し訳ありません。
    • good
    • 0
この回答へのお礼

VBAのことはさっぱりでしたが、教えていただいたコードは大変便利ですね^^;
本当は置換えを使って、やったほうが良いかと思いますが、これを使わせていただきます。
ありがとうございました。

お礼日時:2005/02/18 12:15

B1に '=$A$1 と入力し、下にフィルしてから


B列を選択し、データメニュー→区切り位置→完了ボタン
こんな感じですか?

また、
B1に '=$A$1
B2に =$A$1
これを下までフィルしてから先ほどと同じ操作をすると
=$A$1
=$A$1
=$A$2
=$A$2
=$A$3
=$A$3

更に
B1に '=$A$1
B2に =$A$1
B3に '=$A$1
上と同じ操作をすると
=$A$1
=$A$1
=$A$1
=$A$2
=$A$2
=$A$2
=$A$3
=$A$3
=$A$3
こういうことでしょうか。
    • good
    • 0

絶対参照でコピーしたい状況はほとんど考えられないと思うのですが、どのようなとき必要なのでしょうか?


基本的にはご希望の操作はできないのですが、このような場合にはいくつかの対応策があります。

具体的に変換したい例を上げていただければ、回答しやすいのですが、方法としては、
1)文字列として入力して最後に数式に一括変換する方法、
2)相対参照の数式でオートフィルし、最後に文字を置換する方法があります。

例えば後者の例ですと、「=A1+B1」のような式であれば、オートフィル後、Ctrl+Hで置換ダイアログを出して検索する文字列に「A」置換する文字列に「$A$」としてすべて置換します。同様にBについても置換します。
    • good
    • 0

=A$1


=A$2
=A$3
=A$4

という文字列を作成するような処理を行っては?

A1:1
B1:="=A$"&A1

を下にフィル、B列をコピー、値で貼り付け、編集。とか。
    • good
    • 0

VBAでやるしかありませんね。


でも、作表の過程では、このような機能があると重宝するかも。

1. 相対参照をフィルコピー
2. 1.のセル範囲を選択し、下記VBAコード実行

'セル選択範囲内の相対参照数式を絶対参照数式へ変換
Sub Sample()
  
  Dim rngCell As Range
  For Each rngCell In Selection
    Select Case rngCell.HasArray
      Case True
        rngCell.FormulaArray = _
        Application.ConvertFormula(rngCell.FormulaArray, xlA1, , xlAbsolute, rngCell)
      Case False
        rngCell.Formula = _
        Application.ConvertFormula(rngCell.Formula, xlA1, , xlAbsolute, rngCell)
    End Select
  Next rngCell

End Sub
    • good
    • 0

=$A$1*5 などの場合でしたら


はじめに =A1*5 と入力してフィルハンドルでコピーし
計算式の部分を選択して、置換で A → $A$ としてはどうでしょうか?
    • good
    • 0

どのようなことが目的かわかりませんでしたので,誤解していたらごめんなさい。



たとえば,「 =$A$1*10 」みたいな式を,下にコピーしたいけど,動いてほしくないのはA列だけで,行は1,2,3,4…のように動いてほしい,というのであれば,「 =$A1*10 」のように,Aの前だけに$をつけます。また,行だけ固定する場合は,「 =A$1*10 」のように1の前だけに$をつけます。

ご要望と違うようなら,補足をください。

この回答への補足

僕の説明が言葉足らずでごめんなさい。
実はこう、
$マークがついたまま1,2,3,4…と動いて欲しいと思っています・・・

補足日時:2005/02/17 19:05
    • good
    • 0

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