VBAで
セルに関数を数式として代入したいです。
SUMIF関数の第一引数と第三引数は範囲ですが
この範囲に変数を入れたい場合どう書けばいいでしょうか?
例えばcolumn,column2という変数には列番号A,B,C....が渡り、ROW1,ROW2という変数には1,2,3...
などが入る場合
普段B4:B6と書いているものは
column1&ROW1:column2&ROW2などと書くのでしょうか?
調べても書き方が出て来ず困っています。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>column1&ROW1:column2&ROW2
文字列型と数値型変数に文字列ですからね。
column1 & ROW1 & ":" & column2 & ROW2
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に変換することなく)引数として指定することも可能です。
少し、発想を変えて、セルの位置などの指定方法を考えてみると、後々、いろいろな処理を行う上で便利になるかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
文字列からタブコードを取り除...
-
VBAでの Replace関数で、ワイル...
-
Excelで3E8を3.00E+8にしない方...
-
Left関数とRight関数を合わせた...
-
Excelで指数表現しないようにす...
-
VBの「As String * 128」とは?
-
エクセルで文字列をtxtファイル...
-
C#で年月を比較する
-
Msgboxの×が押されたとき
-
VBAを使って選択した範囲の数字...
-
vbsからバッチファイル実行時の...
-
同一セル内に関数と文字列を同...
-
エクセルで文字列の最大値を抽...
-
文字列からカンマを取り除きたい
-
MS SQLServer のSQLで文字列の...
-
ダブルコーテーションでアンド...
-
エクセル 数値データを桁をそ...
-
【Excel VBA】複数ある特定の文...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
文字列からタブコードを取り除...
-
VBAでの Replace関数で、ワイル...
-
Excelで指数表現しないようにす...
-
Excelで3E8を3.00E+8にしない方...
-
エクセルで文字列をtxtファイル...
-
【Excel VBA】複数ある特定の文...
-
Left関数とRight関数を合わせた...
-
同一セル内に関数と文字列を同...
-
アクセスで特定の数字以外(複...
-
MS SQLServer のSQLで文字列の...
-
エクセルで文字列の最大値を抽...
-
VBA2005 16進を2桁で表示したい。
-
ORCLEでの小数の表示方法の変更...
-
エクセル 数値データを桁をそ...
-
VBの「As String * 128」とは?
-
CStringの文字列検索&抜き出し...
-
エクセルでセル内の文字列の最...
-
Msgboxの×が押されたとき
おすすめ情報