
VBAで
セルに関数を数式として代入したいです。
SUMIF関数の第一引数と第三引数は範囲ですが
この範囲に変数を入れたい場合どう書けばいいでしょうか?
例えばcolumn,column2という変数には列番号A,B,C....が渡り、ROW1,ROW2という変数には1,2,3...
などが入る場合
普段B4:B6と書いているものは
column1&ROW1:column2&ROW2などと書くのでしょうか?
調べても書き方が出て来ず困っています。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんばんは
回答はすでにでていますので、別の話を、ご参考までに。
VBAでセル位置を扱う場合、どちらかと言えば列は Column() 等で示される列番号(=数値)を用いることが多いように思います。(計算しやすいこともありますので)
ですので、あまりご質問のようなことが必要になるケースが発生する例を感じられません。
>調べても書き方が出て来ず困っています。
あまりそのような方法で処理をする発想がないので、例が少ないのではないかと推測します。
例えば、ご提示の場合であれば、ご質問のセル範囲は、
Range( Cells(row1, column1), Cells(row2, column2) )
などと記述することができます。
少し長いかも知れませんけれど、視認性は良いのではないでしょうか。
場合によっては、
Cells(row1, column1).Resize( row2-row1+1, column2-column1+1)
のような記述の方が便利な場合もあります。
(こちらの場合は、column1,column2は数値である必要があります。)
また、実際には、上例のように変数で計算するというよりは、変数には最初からそのような値を取得しておくことになると思います。
その場合には、
Cells(row1, column1).Resize(RowsNum, ColumnsNum)
のような感じの記述になるでしょう。
実際に、何をなさりたくてのご質問なのかは、わかりませんけれど・・・
セルに関数を設定したくて、A1形式での指定が必要になるとしても、上記のセル範囲のAddressを取得すれば、そのままA1形式のセル範囲(=文字列)に変換することが可能です。
関数を設定するのではなくて、結果を計算できれば良いだけであるなら、Worksheet.Function を利用することで、そのままRangeオブジェクトを(Addressに変換することなく)引数として指定することも可能です。
少し、発想を変えて、セルの位置などの指定方法を考えてみると、後々、いろいろな処理を行う上で便利になるかもしれません。
No.2
- 回答日時:
>column1&ROW1:column2&ROW2
文字列型と数値型変数に文字列ですからね。
column1 & ROW1 & ":" & column2 & ROW2
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
- Excel(エクセル) Excelでなぜこのような式をつかっているのでしょうか、行に1,2,3と連番を振るだけなのに 5 2023/04/08 20:00
- Excel(エクセル) Excel 、この式はどのように解釈すればいいのでしょうか 4 2023/02/03 08:53
- Visual Basic(VBA) 最終列の右へSUM関数を作成するため下記コードを実行しましたが、最終列「10月28日」が上書きされて 3 2022/12/05 20:32
- その他(Microsoft Office) SUMIFとCOUNTIFの違いについて 4 2022/09/29 14:13
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/03/04 09:54
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/02/18 11:30
- Excel(エクセル) OFFSET関数を使用した印刷範囲の自動変更について 2 2022/06/02 12:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
文字列からタブコードを取り除...
-
Excelで指数表現しないようにす...
-
Excelで3E8を3.00E+8にしない方...
-
エクセルで文字列の最大値を抽...
-
Left関数とRight関数を合わせた...
-
SQL の Update文(?) と ...
-
エクセル 数値データを桁をそ...
-
エクセルで文字列をtxtファイル...
-
アクセスで特定の数字以外(複...
-
ACCESSのSQLでのカンマ’認識に...
-
VBA2005 16進を2桁で表示したい。
-
同一セル内に関数と文字列を同...
-
like演算子の使い方
-
文字列チェック!ある文字から...
-
aaa.bbb.ccc という、「ドット...
-
OnTime 使用時のプロシージャへ...
-
【excel】複数のセルを対象に特...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
文字列からタブコードを取り除...
-
VBAでの Replace関数で、ワイル...
-
エクセルで文字列をtxtファイル...
-
【Excel VBA】複数ある特定の文...
-
エクセル 数値データを桁をそ...
-
Excelで3E8を3.00E+8にしない方...
-
VBA2005 16進を2桁で表示したい。
-
エクセルで文字列の最大値を抽...
-
同一セル内に関数と文字列を同...
-
Left関数とRight関数を合わせた...
-
Excelで指数表現しないようにす...
-
MS SQLServer のSQLで文字列の...
-
VBの「As String * 128」とは?
-
エクセルでセル内の文字列の最...
-
ORCLEでの小数の表示方法の変更...
-
bashスクリプトでの文字列から...
-
LEFT関数で文字数を指定しない...
-
アクセスで特定の数字以外(複...
おすすめ情報