• ベストアンサー

Excelマクロで・・・

任意の変数nを参照し、範囲A1:(A1+n)の最大値を 計算するマクロを作りたいと考えています。 とりあえず Formula="max(Cells(1,1),Cells(1,n))"と書いてみた のですが、(当然なのでしょうが)ダメでした。 良く分からないですがFormulaを使う時はA1とかB15 しか入力出来ないようです。何か良い方法をご存知 でしたらどうかよろしくお願い致します。

  • VAN613
  • お礼率82% (141/170)

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

  • ベストアンサー
  • shkwta
  • ベストアンサー率52% (966/1825)
回答No.1

最大値 = WorksheetFunction.Max(Range(Cells(1,1),Cells(n + 1,1))) でいいようです。 (A1+n)というのがよくわかりませんが、たとえばn=5なら A6ですか?上の式はそういうつもりで書いてありますので、違ったら修正してください。 Cells(a,b) はaが行番号、bが列番号です。

VAN613
質問者

お礼

素早い回答をどうもありがとうございました! 解決しました。本当にどうもありがとうございます。

関連するQ&A

  • エクセルのマクロについてなのですが…

    現在マクロを使用して数字の入力を行おうとしております。 セルのB2は変数iを入力(例えば5を入力) 値を入力する範囲はセルのCells(1,1)からCells(i,1)(下記あ~お)に 1~iまでの数字を重複する事無く入力します。 なお、セルのCells(1,1)からCells(i,1)に入力する数字は Rndを使用して乱数にしたいのですが 乱数の入力までは何とか辿り着いたのですが どうしても重複してしまいます。 ネットで調べたのですが、コピレば使えるのですが マクロの意味が良く分からないので 出来れば行ごとの意味も教えていただきたいのですが… ワガママばかりで申し訳ありません。 A B C D 1 あ 2 い 5 3 う 4 え 5 お 6 ・ ・ ・

  • エクセル マクロ

    はじめまして。 エクセルでマクロを使って研究を進めているものです。 最近マクロを使い始めたのですが、ワークシート関数のスクリプトについてご質問があります。 具体的な記述を書いたほうが説明しやすいので、下に記述します。 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を使って書きたいということです。 また、実際のエクセルのセルに入力されている関数をそのままコピーして、それに変数を自分で手直しして加えるような方法がありましたら教えてください。 よろしくお願いします。

  • エクセル マクロのFunctionプロシージャについて

    エクセルでユーザー定義関数を使う時にセル範囲を任意に指定して参照したいのですがやり方がよく分かりません。 たとえば、以下のマクロを記述して Function test(a,b) test=a+b End Function エクセルのシート上で =test(A1,A2) とすれば、計算結果が出てくると思いますが、この A1、A2と参照していたのを A1:A3 というように参照できるようにマクロを変更したいです。 どなたか教えてください。

  • エクセルマクロで合計を計算したい

    いつもお世話になっています 可変な範囲を変数で取得して、合計を計算できるでしょうか   A  B C D  1   5  2   8  3   3  4   7  5    <-----ここ 「B5」に合計値を出したい 但し、データが可変するので常に「B5」とは限らず「B7」等の時もある これをマクロで自動取得してそのデータの下に合計を出したいのですが お願いいたします。 (”合計”・"H行番号" ・"L行番号")を変数として取得。。。。。 Range("合計").Formula = "=sum(B & H行番号 : B & L行番号)" なんてのを実行したのですが、当然のことながらダメでした。

  • Excelマクロで、入力規則のリストに既に定義された名前を入れたい

    入力規則のリストに、既に定義された名前を可変的に入れたいと考えています。 具体的には、以下のFormula1の中身を変数等を利用して、参照先を変化させたいのです。 .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,Operator:=xlBetween, Formula1:="=$A$1:$A$10" 既に範囲に対して名前が定義されているので、それを利用する(というか利用しなければならない)制約があるのですが、単に文字列変数を入れるだけでは参照してくれないようです。 何かアイディアがあれば教えてください。

  • EXCELマクロで数行おきに繰り返す場合

    初歩的な質問なんでしょうが宜しく尾お願いします。 SHEET1上で、他のシートを参照して数式を入力するマクロですが 数行おきに入力していき、かつ参照するシートも数行おきとなる 場合の記述がよく分かりません。 Range("A2").Formula ="=IF($K$1>=3,SHEET2!H7,""-"")" Range("B2").Formula ="=IF($K$1>=6,SHEET2!IF7,""-"")" Range("A4").Formula ="=IF($K$1>=3,SHEET2!H12,""-"")" Range("B4").Formula ="=IF($K$1>=6,SHEET2!I12,""-"")" ・ ・ という感じで、2行おきのセルにシート「SHEET2」のセルを5行おきに 参照していきます。50回くらい(100行目迄繰り返すので簡単に記述で きないかと前半のRange("Ax").はForToで指定すればいいのかなと なんとなく想像はできるのですが、さらに入力する数式の行も 異なる間隔で可変させるという場合の記述が分かり分かりません。 素人で恐縮ですが教えて頂けませんか?

  • エクセルのマクロについて

    QNo.3421130で質問させて頂いた件の続きなのですが 入力シート(1)のA1に入力された値を、シート2のB1に表示(つまりB列の同じ行数のセルに表示)するというマクロをお教え頂き、早速実践してみましたが、入力シートA1に入っている値が入力シートA10から算出された値(例:A11に日付の2007/10/18と入っていて、A10にはMONTH関数で10だけを抽出している。そのA10の値10をA1が参照している状態やIF関数で反映された値等)がシート2に表示されません。 また本マクロは入力シート(1)とシート2の同じ行列のセルの表示しか出来ませんが、たとえば入力シート(1)のA2セルの値をシート2のB4に表示(任意で表示位置を変更する方法、シート2の反映セルを下へずらす等)が分りません。 以下、お教え頂いたマクロです。 Private Sub Worksheet_Change(ByVal Target As Range)  If Target.Column = 1 Then    Sheets("Sheet2").Cells(Target.Row, "B").Value = Target.Value  End If End Sub 続きの質問であることと、説明が分りにくく大変申し訳ありません。 非常に困っております。よろしくお願いします。

  • エクセル マクロ ファイル名を変数指定したいのですが?

    マクロ超初心者です。 何方かご存知の方教えてください。 起動しているエクセルのファイルを変数で定義して参照したいのですがうまくいきません。下記は何処が悪いのでしょうか? 因みにB N Namaeは変数指定してます。 Worksheeetsは参照します。最後はセルコピーの構文です。 マクロ構文 Workbooks("月報 & B.xls").Activate Worksheets(N & "月").Select Cells.Find(What:=Namae, LookIn:=xlValues, LookAt:=xlWhole).Offset(1, 0).Resize(RowSize:=405, ColumnSize:=4).Select Selection.Copy

  • EXCELマクロでの formula の使用に関して

    マクロ内で、 Range(c1).formula = "=A1+B1" と記述すれば セルC1に「=A1+B1」という式が入ります。 これはいいのですが・・・・ セルC1に 「=CONCATENATE(A1,"~",B1)」 というような「"」を使った数式を入れる場合、 どうにように formula文を作成すればいいのでしょうか? Range(C1).formula = "=CONCATENATE(A1,"~",B1)" ではダメです。 「"」の前に何か記号でもつけるのでしょうか?

  • エクセルマクロ:範囲の選択

    マクロで範囲を指定したいのですが、 dataと名づけたシートA1に例えば8という値、A2に20という値があります。 この数字は他のセルから参照する計算式になっていて再計算をするたびに変わります。 この時、C8:E20の範囲を指定したいのですが、やみくもに Dim c As Integer c = 3 'C列 Range(Cells(Sheets("data").Range("A1").Value, c), Cells(Sheets("data").Range("A2").Value, c + 2)).Select Selection.Copy などと書いてみたのですが、うまくいきません。 どのように記述すればよいか、教えてください、宜しくお願いいたします。