• ベストアンサー

エクセルのマクロでアドレスを取得したセルの掛け算をしたい

「個数」と「単価」の変数を設定し、個数×単価の掛け算を算出したいと考えています。下記のように記述したところエラーが出てしまいます。よろしくご教授お願いします。変数「個数」と「単価」の値は取得できています。 個数 = Cells(6,5).Address(rowabsolute:=False,columnabsolute:=False) 単価 = Cells(1, 10).Address(rowabsolute:=False) Range(Cells(6, 10), Cells(6, 10)).Formula = "=時間*コスト"

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

> 「個数」と「単価」の変数を設定し、個数×単価の掛け算を > Range(Cells(6, 10), Cells(6, 10)).Formula = "=時間*コスト" 1.””で囲んだら変数じゃなく文字列になってしまいます。 2.変数が一致していません。 個数 = Cells(6, 5).Address(rowabsolute:=False, columnabsolute:=False) 単価 = Cells(1, 10).Address(rowabsolute:=False) Cells(6, 10).Formula = "=" & 個数 & "*" & 単価 じゃないですか?

matchy4649
質問者

お礼

おっしゃるとおりです・・・失礼しました。 本当にありがとうございました!

その他の回答 (1)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

誤:時間 コスト 正:個数 単価 ですよね? それでしたらこんな感じで Range(Cells(6, 10), Cells(6, 10)).Formula = "=時間*コスト" ↓ Range(Cells(6, 10), Cells(6, 10)).Formula = "=" & 個数 & "*" & 単価

matchy4649
質問者

お礼

本当です・・・失礼しました。 本当にありがとうございました!理解しました

関連するQ&A

  • エクセル マクロ

    はじめまして。 エクセルでマクロを使って研究を進めているものです。 最近マクロを使い始めたのですが、ワークシート関数のスクリプトについてご質問があります。 具体的な記述を書いたほうが説明しやすいので、下に記述します。 Sub Macro1() Windows("a.xls").Activate ActiveCell.FormulaR1C1 = "=SUM(RC[-8]:RC[-1])"・・・(1) Range("J3").Select End Sub このような命令があるときに、sum関数の中に変数を入れることを考えます。そのときに、R1C1表示では選択したセルを基準にして変数を考えなくてはいけないので考えにくいです。そこで、イメージとしてですがこのような書き方はできないのでしょうか。 (1)の部分 ActiveCell.Formula = "=SUM(Range(Cells(2, 2), Cells(2, 変数)))" つまり、rangeやcellsを使って書きたいということです。 また、実際のエクセルのセルに入力されている関数をそのままコピーして、それに変数を自分で手直しして加えるような方法がありましたら教えてください。 よろしくお願いします。

  • vbaでセル取得について

    お世話になります。 初歩的な事なのですが、 変数を使ったセルの取得で、 range("a1:b2")を取得する場合に 数字の部分が変数だったらどういう記述になるでしょうか。 ”のつける位置が良く分からず、どうつけても赤字でエラー になります。またcellsの場合も行数や列数が変数の場合の 記述の仕方をお教え頂きたく宜しくお願い致します。

  • Vlookup 関数が入っているセルの値を抽出したい

    kumasanです 久しぶりに必要にかられてVBAを利用することになりました。 Excel 2002 SP3を利用しています 次のようにセル(2,18)にVlookup関数を利用してセル(M2)の値 を 物品.xlsの中に名前(集中)の中から2列目の値を選択させて います Cells(2, 18).Formula = "= VLookup(M2, 物品.xls!集中, 2, False)" 選択はできています セル(M2)の値がみつかれば例えばその値が出ています 今回は"○"を表示させています みつからない場合は、#N/Aとエラー表示されます さて、ここで、このCells(2,18)にカーソルを持っていき その値をhantei( Dim hantei As Variant)という変数に 入れようと思い下記のように記載しています   Range("R2").Select hantei = Str(Range("R2").Select) しかし、ここでhanteiの中身を表示すると セル(M2)の値がみつかっても「true」なかっても「true」と なって います この変数hanteiにより、この行の削除をするか、次の処理に進 むか 判定させたいのですが・・・ どのようにすれば、この判定ができるか教えていただけません か よろしくお願いします。 なお次のようにエラー表示なしにして「true」「false」にし ても 同じ結果でした Cells(2, 18).Formula = "= IsError(VLookup(M2, 集中物品.xls! 集中, 2, False))" よろしくお願いします。

  • エクセルのマクロで結合セルに値を貼り付けたい

    みなさん、お知恵をください。 Excel2000です。 Sheets(1)に A:D までを結合したセルを30行ぐらい用意した状態で Sheets(2)の 単一セル A1,A2,A3,A4,A5・・・・とつづく変数 HENSUUを 貼り付けたいのです。*HENSUUは値のみの文字であったり数字です。 もちろん下記の過去質問はチェック済みです。 http://oshiete1.goo.ne.jp/qa2197173.html 物まねで作成しましたがエラーです。 Sheets(2).Select HENSUU = Range("A65536").End(xlUp).Row  ’変数最終行定義 Sheets(1).Range(Cells(1, 1), Cells(HENSUU, 1)).Value = Sheets(2).Range(Cells(1, 1), Cells(HENSUU, 1)).Value すみません。お知恵を拝借させて下さい。 よろしくお願いします。

  • エクセルで変数を用いてセルの移動

    エクセルにおいて、たとえば上から順に検索していき、14番目をほかのシートにコピーしたいときに、以下の記述ではまずいでしょうか。 基本的にrangeやCellsの中に変数を組み込む方法がわかりません。 以下の方法で行うと、エラーが帰ってきました。 For J = 1 To 100 + 1 Select Case J Case 14 Sheets("kanryou").Select Range(Cells(J + Endd, 1), Cells(J + Endd, 1)).Select Selection.Copy Sheets("nukitori").Select Range(Cells(K, 1), Cells(1, 1)).Select ActiveSheet.Paste Application.CutCopyMode = False K = K + 1 Case Else End Select Next

  • エクセルVBA 変数への代入がうまくできない

    エクセルVBA 変数への代入がうまくできない かなり初心者です。。。 選択範囲を変数に記憶したいのですがうまくいきません。 メソッドが対応していないとエラーになります。。。 stRng2に"A1:A8”のような範囲のデータを記憶したいのです。 dim stRng2 as Range stRng2 = wkb.Worksheets(stSheet1).Selection.Address(ColumnAbsolute:=False, RowAbsolute:=False) すいませんが、どなたか教えてください。

  • 選択範囲について

    ある範囲を選択したいのですが。 選択開始セルは決まっているのですが選択終了のセルが変化するので、そのアドレスを変数に入れて設定してみたのですがエラーがでてしまいます。 こういうときはどうすれば上手くできるのでしょうか? 変数1 = ActiveCell.Offset(0, 10).Address(RowAbsolute:=False, ColumnAbsolute:=False) Range("B4:末尾").Select

  • EXCELマクロについて

    条件 シート名提供データE列の3行目からデータが入っています。    ブランク以外のデータをコピーしてシート名WorkのC列の2行目から貼り付けたいので下記のマクロを書いていますがおかしい所 はないのでしょうか。教えてください。 いまいちCellsの使い方がわかりません。 出来たら下記の意味を教えてください。 brank = Worksheets("提供データ").Cells(gyo, 5).Text Range(Cells(3, 5), Cells(gyo, 5)).Select Sub 貼付() Dim gyo, brank Sheets("提供データ").Select Range("e3").Select gyo = 2 Do gyo = gyo + 1 brank = Worksheets("提供データ").Cells(gyo, 5).Text Loop While brank <> "" Range(Cells(3, 5), Cells(gyo, 5)).Select Selection.Copy Sheets("work").Select Range("c2").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End Sub

  • Excel VBA セル位置が取得できません

    条件1の時、セル位置を変数(gyo1)に代入し、 条件2の時、セル位置を変数(gyo2)に代入。 その後、countif(gyo1:gyo2)として、 その数値を別のセルに表示させる。 という構文を作りたいと思っています。 しかし、adressプロパティを記述しても、「オブジェクトが必要です」とエラーが出てしまいます。 (expressionをSelectionに変えるとエラーは出ないのですが、この違いや意味ってなんでしょうか。) さらに、この構文はFor文で繰り返しているのですが、 最初にgyo1の値が「A2」となっても、次の繰り返し時、条件が一致したても、gyo1が更新されず、「A2」のままだったりします。 (イメージでは、「A10」とか、A列を下に移動していくはずです。) また、gyo1,gyo2の変数宣言は、どのようにすれば良いでしょうか。 以下、作成中のコードを記述します。 力を貸してくださいませ。よろしくお願いいたします。 row = 2 If Cells(row, 1) <> Cells(row - 1, 1) Then gyo1= Selection.Address(Cells(row, 1)) End If If Cells(row, 2) <> Cells(row - 1, 2) Then gyo2 = Selection.Address(Cells(row, 2)) End If Cells(row,5).value = countif(gyo1:gyo2)

  • Excel VB 任意のセルから、最終行までの数式のコピー

    任意のセルに、計算式を入力しております。  A   B   C 1 個数 金額  基準単価 2 5  15000  3000 3 123 25780          4 ・ ・ 600 C2には、B2/A2という計算式が入っております。 この計算式を、C600(浮動)までコピーしたいのですが、 どうしてもうまくいきません。。 Sub 基準単価() Dim i As Integer Application.ScreenUpdating = False  '1行目で検索 For i = Range("IV1").End(xlToLeft).Column To 1 Step -1   If InStr(Cells(1, i).Value, "基準単価") > 0 Then    Cells(2, i).FormulaR1C1 = B2/A2    Cells(2, i)Selection.AutoFill Destination:=    Range("Cells(2, i).End(xlDown)).Type:=xlFillDefault End If  Next i  Application.ScreenUpdating = False End Sub どうぞよろしくお願いします!!  

専門家に質問してみよう