- ベストアンサー
VBAを使ってシート上に関数式を入れたいのですが・・・
imogasiの回答
- imogasi
- ベストアンサー率27% (4737/17068)
#3のおっしゃるように =RSQ(F2:F1000,G2:G1000) のはずです。 Cells(68, y).FormulaLocal ="=RSQ(G" & x & ":F" & y & ",G" & x & ":F" & y & ")"""
関連するQ&A
- 【エクセルVBA】「インデックスが有効範囲にありません」というエラーがでます
こんにちは。VBA初心者ですが、下記コードを実行すると エラーが出てしまいました。 シート(シート1)のセルから別シート(シート2)のセルに 値のみコピーするVBAを組んでいます。 適宜、シート1に入力したものを読みこませていきたいので 変数を使用しています。 ------------------------------------------------------------- Sub セルのコピー() Dim X As Integer X = 3 Y = 2 Do While Cells(X, "A").Value <> "" Sheets("シート1").Cells(X, "A").Copy Sheets("シート2").Activate Sheets("シート2").Cells(Y, "F").PasteSpecial _ Paste:=xlPasteValues ⇒エラー対象 Application.CutCopyMode = False X = X + 1 Y = Y + 1 Loop End Sub ------------------------------------------------------------ つまり、シート1のA3セルを先頭にA4,A5,A6・・・と続くセルの値 をシート2のF2を先頭としたセル(以下、F3,F4・・・)に値のみコピー していきたいのですが。。 実行すると「インデックスが有効範囲にありません」というエラーが でます。デバック対象は上記、「⇒エラー対象」の構文です。 変数の設定の仕方がおかしいのでしょうか。。 ご教示のほどよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- ユーザー定義関数を作りVBAで記述
aaaと言う、ユーザー定義関数を作りVBAで記述して使う場合はどのように記述すればよいでしょうか。 通常のワークシート関数であれば、 Cells(1, 1) = Application.Sum(Range("G1:G100")) などとなりますが、 Cells(1, 1) = Application.aaa(Range("G1:G100")) とするとエラーになります。 初歩的な質問だとは思いますが、よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- EXCEL97VBAにおける、TREND(ワークシート関数)の配列入力は?
EXCEL97のワークシートでファイルを作成したのですが、データ数が膨大で動かない(計算終了まで時間がかかりすぎる)ため、ワークシート関数の代わりに、VBAのSub~End Subを作成し、計算結果(式ではなく数値)のみをセルに貼り付ける作業を行っています。 ワークシート関数のTRENDを使用しているのですが、これをVBA上で使用するためにどう入力すれば良いかわかりませんので、ご教授いただきたいと思います。 myCELL=Application.TREND(既知のy, 既知のx, 新しいx, 定数) でmyCELLを計算させたいのですが、 配列の既知のyおよび既知のxがどのように入力すれば良いか判りません。 この数値をセル上において、例えばA1:A10、B1:B10という形にすることは できますが、求めていますのは X1,X2~X10 Y1,Y2~Y10の変数がVBAのプログラム上にある場合の配列の入力 (数値取込?)を教えていただきたいと思います。 TREND関数はVBAでも使用できる関数となっていますが、 私の求めるやり方は不可能である場合もその旨をお教えください。 よろしくお願い申し上げます。
- ベストアンサー
- オフィス系ソフト
- 関数をVBAで簡素化する
よろしくお願いします シート枚数22枚 各シート セルG11からG71まで 各シートの各行にこの関数を入力するのは労を要します。 また、VBAに下のように1ツづつ入力するのも同じです。 Range("G11").Value="=IF(E11+F11=0,0,G10+E11-F11)" ↓ Range("G71").Value="=IF(E71+F71=0,0,G70+E71-F71)" VBAで簡素化ができないでしょうか
- 締切済み
- Visual Basic
- Excel-VBA でSheet1という記述はActiveSheetに書き換えた方が良いか?
以下は知人に作ってもらったマクロで、100×100セルという範囲の 各セル内の値に応じて色を塗り分けるものです。 素人ながらふと気になった点として、3カ所ほど「Sheet1」という 記述がありますが、Sheet1をそのままコピーしたシート名 (例:Sheet1のコピー)などで実行するとエラーになる (或いは'Sheet1のコピー'上には塗ってもらえない) のではないでしょうか? なので、Sheet1を「ActiveSheet」などの記述に書き換えた方が (必ずSheet1上で実行せずともよくなるので)汎用性が高まると 思うのですが、わたしの予想が正しければ、具体的にはどのように 書き換えればよいでしょうか? 単純にSheet1をActiveSheetに書き換えてよいですか? Sub MyColor() Do Until Y = 100 Do Until X = 100 mapcol = Sheet1.Cells(1 + X, 1 + Y) Select Case mapcol Case 1 '赤 Sheet1.Cells(1 + X, 1 + Y).Interior.ColorIndex = 3 Case 2 '黄 Sheet1.Cells(1 + X, 1 + Y).Interior.ColorIndex = 6 X = X + 1 Loop X = 0 Y = Y + 1 Loop End Sub
- ベストアンサー
- Visual Basic
- VBA関数_オブジェクトが指定できない
Excel_VBAで WorksheetFunction.Sum (Range(Cells(2, 14), Cells(iCount, 14))) 上記のコードに ActiveSheet を記述(ワークシートを指定)したいのですが エラーになってしまい、何処にどのように記述してよいか ご教授よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- VBA初心者です。
VBA初心者です。 Excel 2010のVBAで、 ワークシートのSheet1のオブジェクトモジュールに 他のシートから別のシートにコピー&ペーストをしたいと思い、 以下のプログラムの記述をすると、 アプリケーション定義またはオブジェクトの定義エラーとなってしまいます。 Worksheets("Sheet2").Range(Cells(1, 7), Cells(d, 8)).Copy Destination:=Worksheets("Sheet3").Cells(3, 1) (「d」は変数です。セルの範囲指定は、実際に記述するときは 範囲が広範になるので、行数列数で把握できるようにCellsを使っています) エラーになる理由と解決法をご教授いただければと思います。
- ベストアンサー
- オフィス系ソフト
- Excel ワークシート関数をVBAで使用したい
お世話になります。 Excelでワークシート関数をVBAで使用したいのですが、うまくいきませんでした。 関数ですと「ISERROR(FIND(V$10,R$11))=FALSE」のような式をVBA上で使用したいと思い、以下のようにコードを書いてみましたが If Application.WorksheetFunction.IsError(Application.WorksheetFunction.Find(Cells(i, j), Cells(i, 18))) = False Then Cells(i, j).Select End If 「実行時エラー'1004' WorksheetFunction クラスのFindプロパティを取得できません」となります。 入れ子が問題なのでしょうか。 よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- VBA ワークシート関数のエラー
シートに数式を入れていたものを、VBAで値のみ入力しようと考えています。 そこで、.Cells(1,1) = WorksheetFunction.数式といった形のメソッドを試しています。 しかし、複雑な数式を記述するとエラーが出てしまいます。 成功 (iferrorというワークシート関数が1つ) Debug.Print WorksheetFunction.IfError(1 / .Cells(1, 5) + 1 / .Cells(1, 6) + 1 / .Cells(1, 7) - 1, "P") 失敗(ワークシート関数のifとcountifなど複数のものが数式に混入) Debug.Print WorksheetFunction.If(CountIf(Range("C17:D49"), Range("C29")) > 5, Range("C29"), Range("D29")) Countifの場所でエラーになります。このcountifを使えるようにするためには、どうすればよいのでしょうか? WorksheetFunction.if(WorksheetFunction.Countif(、、、、という書き方はダメでした。 数式が汚くてすみません。 宜しくお願いいたします。
- 締切済み
- Excel(エクセル)
- EXCEL VBA で データを集計したい。
よろしくお願いします。 添付の資料の通り、データを格納しているシートがあります。 項目は、 ・処理日 ・科目 ・D列 ・E列 ・F列 とあったとし、抽出条件は、 ・処理日の範囲指定 ・科目の指定 としたいと思っています。 VBAで処理したいのですが、まずはEXCEL関数のDSUMを使用し、添付の通り指定して、 抽出されることを確認しました。 これと同様の抽出をVBAで行いたく、VBAでワークシート関数を使用するために、 Dim x As Variant x = Application.WorksheetFunction.DSum(Range(Cells(3, "A"), Cells(15, "E")), "D列", Range(Cells(3, "O"), Cells(4, "Q"))) とし、正しく値を取得することができました。 ですが、条件を指定する部分を、セルで指定するのではなく、例えば "処理日" >= 20151001 and "処理日" <= 20151002 and "科目" = "01" のように、式をVBAで生成して作成したいのですが、方法はありませんでしょうか? ACCESSのDSUM関数のような記述ができませんでしょうか? お手数をおかけします、よろしくお願いいたします。
- ベストアンサー
- Visual Basic
お礼
問題解決しました。ありがとうございました。