家計簿を作成中です。前の日にちの残高から収入をたし、支出を引き残高を計算したいのですが、
B列収入、C列支出、D列残高
Range("D3").Select
ActiveCell.FormulaR1C1 = "=R[-1]C+RC[-2]-RC[-1]"
Range("D4").Select
と言う計算式を"D3"などの数値ではなく変数など代入式をつかった式を教えてください。

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

A 回答 (5件)

こんにちは



 以下でいかがでしょうか?

Sub test()
Dim Rng As Range
Set Rng = Cells(Cells.Rows.Count, 4).End(xlUp).Offset(1)

If Intersect(Rng, Cells(2, 4)) Is Nothing Then
Rng.FormulaR1C1 = "=R[-1]C+RC[-2]-RC[-1]"
Else
Rng.FormulaR1C1 = "=RC[-2]-RC[-1]"
End If
End Sub

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

回答ありがとうございます。うまく動きました。式の方も、簡潔でわかりやすかったです。ホームページの方も参考に見てみたいと思います。

お礼日時:2001/09/11 12:07

D列に =R[-1]C+RC[-2]-RC[-1] という式を、下へ向かって入力していきたいのなら、下記がつかえます。


For i = 3 to 10
 Cells(i,4).FormulaR1C1 = "=R[-1]C+RC[-2]-RC[-1]"
Next i

この例では10行目まで式をいれています。

この回答への補足

nishi6さんの補足とおなじです。宜しくお願いします。

補足日時:2001/09/10 15:51
    • good
    • 0

nishi6さんのSanshiki1と殆ど一緒です。


これの場合はCellsを使った書き方です。
Cellsの書式:Cells(行数,列数)
Range("D3") = Cells(3,4) 。。D3セルは3行目の4列目

Dim tRow As Integer '行数の変数名
For tRow = 3 To 33
Cells(tRow, 4) = Cells(tRow - 1, 4) + Cells(tRow, 2) - Cells(tRow, 3)
Next
(この例だと、D2に前月末日の残高が入っているのが前提です。)

家計簿の記入方法に拠るかもしれませんが、マクロより式を使った方が良いかもしれません。
式の例:=D2+B3-C3 (これをD3に入れて、オートフィルをする)
(この例だと、D2に前月末日の残高が入っているのが前提です。)

この回答への補足

nishi6さんの補足とおなじです。宜しくお願いします。

補足日時:2001/09/10 15:50
    • good
    • 0

マクロ記録をした算式と思いますが、下のSanshiki1は質問にある、R1C1参照形式で書いた例です。

マクロ記録で作られた、Selectなどは使用していません(削除しています)
xを変数にして、D3から31個(下に向かって)算式を書く例です。

2つ目の式は直接書くならこんな感じかなと作ったものです。
マクロを書く場合、セル操作については、Range、Cells、Offsetを理解すれば、たいていの記録したマクロは汎用に書き換えることができると思います。
ご参考に。

Sub Sanshiki1()
  Dim x As Integer
  For x = 3 To 33
    Range("D" & x).Formula = "=R" & (x - 1) & "C4" & "+R" & x & "C2" & "-R" & x & "C3"
  Next
End Sub

Sub Sanshiki2()
  Dim rg As Range
  For Each rg In Range("D3:D33")
    With rg
      .Formula = "=" & .Offset(-1, 0).Address & "+" & .Offset(0, -2).Address & "-" & .Offset(0, -1).Address
    End With
  Next
End Sub

この回答への補足

説明が少し足りなかったようです。A列の日付、例えばA2の9/1のD2残高x円から
コマンドボタンを押すと、B3の収入y円、C3の支出z円を計算し、D3残高x'円を出したいのですが、
コマンドボタンを押すたびD4、D5と計算したいのですが。
宜しくお願いします。

補足日時:2001/09/10 15:44
    • good
    • 0

こんばんは。



変数を使った代入式ということですが、

Sub test()

Dim strWork As String
Dim intI As Integer

For intI = 1 To 10
strWork = "D" & intI
Range(strWork).Select
'-----
'処理'
'-----
Next

End Sub

こういった感じでしょうか?

はずしていたら、ごめんなさい。

この回答への補足

ActiveCell.FormulaR1C1 = "=R[-1]C+RC[-2]-RC[-1]"
この式を組み込めばよいのでしょうか。うまく動かなかったもので・・・

補足日時:2001/09/10 15:43
    • good
    • 0

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

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

QEXCELの表、組[A列]:番号[B列] を 組[A列]:番号[行]に変換する方法

EXCELに
A列に組、B列に番号がそれぞれ反映されている表があります。
これを
A列に組、同行に番号が横並びに配置された状態に変更したいと考えております(添付画像)。

D列にはA列の組名を「重複なし」で貼り付けます。
このとき、E列~K列にどのような数式を入力すればよろしいでしょうか?
E1に入力する数式を教えていただけるとありがたいです。
何卒よろしくお願いいたします。

Aベストアンサー

こんばんは!

画像の配置だとE1セルに
=IF($D1="","",IFERROR(INDEX($B$1:$B$1000,SMALL(IF($A$1:$A$1000=$D1,ROW($A$1:$A$1000)),COLUMN(A1))),""))

配列数式になりますので、Ctrl+Shift+Enterで確定!
この画面からコピー&ペーストする場合は
上記数式をドラッグ&コピー → E1セルを選択 → 数式バー内に貼り付け →そのまま(編集可能なまま)
Ctrl+Shiftキーを押しながらEnterキーで確定!
数式の前後に{ }マークが入り配列数式になります。

最後にE1セルのフィルハンドルで列・行方向にずぃ~~~!っとフィル&コピーします。

こんな感じではどうでしょうか?m(_ _)m

Q[原紙]→[スキャナー]→[フォトショップ]→[エクセル]での原寸印刷のやり方

タイトルに書きましたとおり、[原紙]→[スキャナー]→[フォトショップ]→[エクセル]で、最初に取り込んだ[原紙]と全く同じサイズで印刷に出したいのですが、原寸よりも小さくなってしまうので困っています…。

紙に印刷された画像をスキャナで取り込み、フォトショップでgif画像にしました。
と、ここまでは原寸だったのですが、エクセルに貼り付けて印刷しましたら、実際のものよりも一回り小さくなって印刷されてしまいました。
縦横比は同じです。
2.33cmが、1.75cmになりました。

エクセルに貼り付けるときに、「挿入」→「図」→「ファイル」から貼り付けました。
「図の書式設定」では100%になっています。

普段は[原紙]→[スキャナー]→[フォトショップ]→[イラストレーター]で印刷しているのですが、その時は原寸で出ます。(今回もその方法なら原寸なのですが…)

原寸で印刷するにはどうしたらいいのでしょうか?
よろしくお願い致します。

Aベストアンサー

画像を貼り付けるエクセルのシートは事前にページ設定が出来てますでしょうか?
メニューバーで表示>改ページプレビューの設定にして見やすいサイズに表示倍率を上のツールバーで設定してください。青色の改ページラインが貼り付けた画像とほぼ同じになっていますか?画像より大きければドラッグして改ページラインを画像に合わせてください。

Q[セルの書式設定][横位置]の[インデント]の単位

添付図は
1.セル A1 を選択
2.[書式]→[セル]→[配置]を実行
3.[横位置]として“左詰め(インデント)”を選択
4.[インデント]として“2”を選択
5.[文字の制御]として“折り返して全体を表示する”を選択
した後で、次の文を入力した状態を示しています。
Mao Asada successfully landed a triple axle and earned her new personal best score of 142.71, but placed sixth overall due to a poor performance in the short program.
フォントの種類は Courier New です。
なお、標準書式セル A2 にも上と同じ文を入力しています。

ちなみに、私は Excel 2002 を使用しています。

さて、セル A2 と比較して分かるように、セル A1 の左端は約3文字分のスペース幅になっています。このスペース幅とインデント数値との関係を調べてみると次のようになりました。
インデント値 左端スペース幅
    0    0文字分(スペースなし)
    1    約2文字分
    2    約3文字分
    3    約5文字分
    4    約7文字分

[インデント]で設定する数値の単位は何なのでしょうか?
そのことを説明した記述を紹介していただけたら助かります。

添付図は
1.セル A1 を選択
2.[書式]→[セル]→[配置]を実行
3.[横位置]として“左詰め(インデント)”を選択
4.[インデント]として“2”を選択
5.[文字の制御]として“折り返して全体を表示する”を選択
した後で、次の文を入力した状態を示しています。
Mao Asada successfully landed a triple axle and earned her new personal best score of 142.71, but placed sixth overall due to a poor performance in the short program.
フォントの種類は Courier New です。
なお、標準書式セル A2 にも上と同じ文...続きを読む

Aベストアンサー

> インデント]で設定する数値の単位は何なのでしょうか?
> そのことを説明した記述を紹介していただけたら助かります。

下記URLのページには、次のように説明されています。

『インデントの幅は、Excelの初期設定のフォントサイズである「MSゴシック 11ポイント」の文字数を基準とした単位で指定されるため、フォントサイズが異なるセル同士でも同じ間隔でインデントを設定することができます。』

「セルに入力した文字列を1文字分だけ右にずらしたい(Excel)」
http://www.jpita.or.jp/hpv3/ziten/mokutekibetu/ex_59.html


Defaultの「MSゴシック 11ポイント」は、
「ツール」メニュー→「オプション」→「全般」タブで、設定されている「標準のフォント」および「サイズ」によります。

「Excel の [セルの書式設定] ダイアログ ボックスの設定を制御および理解する方法」
http://support.microsoft.com/kb/264372/ja

Q[EXCEL2000]複数の列からデータを取り出して1列にまとめたい!

(1)一行にA列、B列、C列があります。
(2)各行のどれか1つの列には、必ずデータが入っています。
(3)データの入っているセルからデータを取り出し、D列の同じ行のセルに移します。(コピーでもかまいません)
(4)結果、D列には、A列~C列のデータが1列にまとまる!

具体的には↓のようになりますが、どのような関数を使えばよいですか?教えてください。

(具体例)
A列 B列 C列 D列
12         12
       50  50 
    32     32

Aベストアンサー

たとえばD1のセルに
=CONCATENATE(文字列、文字列、文字列)という風にして見られたらいかがでしょうか?

Q【EXCEL】条件付き書式、A列、C列、D列、E列が同じ値の時にB列の背景色を変えたい

お世話になります。

エクセルの条件付き書式の数式の使い方について教えて下さい。
A列、C列、D列、E列の値が同じ時にB列のセルの背景を青に
塗りつぶしたいと思っています。

なので、「数式を使用して、書式設定するセルを決定」、
「次の数式を満たす場合に値を書式設定」で、数式を
「=A1=C1=D1=E1」と入力し、書式、塗りつぶし、青、
を選択して、条件付き書式を設定しました。
すると、、、画像のような結果になります。

私の感覚だと画像でセルの値が「11」~「15」の時だけ
B列が青になると思うのですが実際の結果は画像の通りです。

先の話の通りA列、C列、D列、E列の値が同じ時だけ
B列のセルの背景を青にしたい場合はどうい数式になるのでしょうか?

すいませんが、詳しい方、数式(関数?)で説明できる方よろしくお願い致します。

追記
可能でしたらA列、C列、D列、E列が空白の時はB列の背景色をなしにしたいと思っております。
→A列、C列、D列、E列に値があって、かつ同じ値の場合のみB列の背景を青にしたいです。

お世話になります。

エクセルの条件付き書式の数式の使い方について教えて下さい。
A列、C列、D列、E列の値が同じ時にB列のセルの背景を青に
塗りつぶしたいと思っています。

なので、「数式を使用して、書式設定するセルを決定」、
「次の数式を満たす場合に値を書式設定」で、数式を
「=A1=C1=D1=E1」と入力し、書式、塗りつぶし、青、
を選択して、条件付き書式を設定しました。
すると、、、画像のような結果になります。

私の感覚だと画像でセルの値が「11」~「15」の時だけ
B列が青にな...続きを読む

Aベストアンサー

AND関数を使えば判定ができるのでは?
 =AND(A2<>"",A2=C2,C2=D2,D2=E2)

A列には常に判定する数値が入っているなら「A2<>""」は不要です。

参考サイト
http://www.relief.jp/itnote/archives/003940.php


人気Q&Aランキング

おすすめ情報